123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- using EasyModbusClient;
- using EasyModbusClient.businessBody;
- using IMCS.DefaultList;
- using IMCS.Lib;
- using System;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Text;
- using System.Threading.Tasks;
- namespace IMCS.Device
- {
- public class DeviceHttpServer
- {
- public delegate void DelegateHttpServer(string value, HttpListenerResponse response);
- public event DelegateHttpServer HttpServerMsg;
- public delegate void DelegateHttpServer_WL_Roboot(string value, HttpListenerResponse response);
- public event DelegateHttpServer_WL_Roboot HttpServerMsg_Wl_Roboot;
- public delegate void DelegateHttpServer_WL_Print(string value, HttpListenerResponse response);
- public event DelegateHttpServer_WL_Roboot HttpServerMsg_Wl_Print;
- public delegate void DelegateHttpServer_WL_Clean(string value, HttpListenerResponse response);
- public event DelegateHttpServer_WL_Clean HttpServerMsg_Wl_Clean;
- public delegate void DelegateHttpServer_WL_Machine(string value, HttpListenerResponse response);
- public event DelegateHttpServer_WL_Machine HttpServerMsg_Wl_Machine;
- public void HttpServer()
- {
- bool IsRun = false;
- string HttpServerUrlString = "";
- string localip = Dns.GetHostAddresses(Dns.GetHostName()).Where(m => m.ToString().Contains(".170")).FirstOrDefault().ToString();
- HttpServerUrlString = $"http://{localip}:8089/";
- //netsh http add urlacl url=http://192.168.170.24:8089/ user=Everyone
- string cmdreceive = LibCMD.Instance.WriteCmd($"netsh http add urlacl url={HttpServerUrlString} user=Everyone");
- // string cmdreceive = CMDLib.Instance.WriteCmd($"netsh http add urlacl url=http://{localip}:8089/ user=Everyone");
- if (cmdreceive.Contains("已成功添加") || cmdreceive.Contains("当文件已存在时"))
- {
- YG.Log.Instance.WriteLogAdd($"启动HttpServer 默认添加允许项:{cmdreceive}成功");
- }
- else
- {
- YG.Log.Instance.WriteLogAdd($"启动HttpServer 默认添加允许项:{cmdreceive}失败");
- }
- System.Threading.Thread.Sleep(500);
- HttpListener listener = new HttpListener();
- listener.Prefixes.Add(HttpServerUrlString);
- listener.Start();
- EasyModbusClient.util.CommonUtil.WriteAccessLog(DateTime.Now + ">>>监听服务启动Listening>>>>");
- Task task = Task.Factory.StartNew(async () =>
- {
- while (listener.IsListening)
- {
- HttpListenerContext context = listener.GetContext();
- HttpListenerRequest request = context.Request;
- HttpListenerResponse response = context.Response;
- try
- {
- Servlet servlet = new MyServlet();
- servlet.onCreate();
- if (!request.Url.ToString().Contains("favicon"))
- {
- EasyModbusClient.util.CommonUtil.WriteAccessLog(DateTime.Now + ">>>任务请求开始>>>>===" + request.Url);
- if (request.HttpMethod == "POST")
- {
- Stream stream = context.Request.InputStream;
- StreamReader reader = new System.IO.StreamReader(stream, Encoding.UTF8);
- string body = reader.ReadToEnd();
- EasyModbusClient.util.CommonUtil.WriteAccessLog(DateTime.Now + ">>>===收到POST数据 : >>>>===" + body);
- System.Console.WriteLine(DateTime.Now + ">>>===收到POST数据 : >>>>===" + body);
- CcsRequestBody ccsRequestBody = (CcsRequestBody)JsonJavaScriptSerializer.FromJSON<CcsRequestBody>(body);
- if (body.Contains("开"))
- {
- IsRun = true;
- //send(response, -4, "LHT");
- }
- else if (body.Contains("关"))
- {
- IsRun = false;
- // send(response, -3, "LHT");
- }
- if (IsRun)
- {
- if (body.Contains("MachineName"))
- {
- ItemHttpPostDefaultList itemHttpPostDefaultList = Newtonsoft.Json.JsonConvert.DeserializeObject<ItemHttpPostDefaultList>(body);
- if (itemHttpPostDefaultList.JsonOK)
- {
-
- }
- // break;
- }
- }
- //CcsRequestBody ccsRequestBody = (CcsRequestBody)JsonJavaScriptSerializer.FromJSON<CcsRequestBody>(body);
- //string url = (ccsRequestBody.Url + ":" + ccsRequestBody.Port);
- //string businessType = ccsRequestBody.BusinessType;
- //ConnectDeviceInfo conDeviceInfo = (util.CommonUtil.GetConnectDeviceInfo(url));
- //ResponseBody responseBody = new ResponseBody();
- //responseBody.Code = 0;
- //responseBody.Msg = util.Constants.OPERATE_SUCCESS_MSG;
- //response.StatusCode = 200;
- //response.ContentType = "application/json;charset=UTF-8";
- //response.ContentEncoding = Encoding.UTF8;
- //response.AppendHeader("Content-Type", "application/json;charset=UTF-8");
- //if (conDeviceInfo != null)
- //{
- // ModbusClient server = conDeviceInfo.server;
- // if (!string.IsNullOrEmpty(businessType))
- // {
- // responseBody = WriteValue(conDeviceInfo, businessType, true);
- // }
- // else
- // {
- // responseBody.Msg = util.Constants.PARA_ERROR_MSG;
- // responseBody.Code = util.Constants.RET_FAILURE_CODE;
- // }
- // //加入回调任务队列
- // ccsRequestBody.Data = responseBody.Code + "";
- // util.CommonUtil.RequestTaskList(ccsRequestBody);
- // var serializerSettings = new JsonSerializerSettings()
- // {
- // // 设置为驼峰命名
- // ContractResolver = new CamelCasePropertyNamesContractResolver()
- // };
- // using (StreamWriter writer = new StreamWriter(response.OutputStream, Encoding.UTF8))
- // {
- // writer.Write(JsonConvert.SerializeObject(responseBody, Formatting.Indented, serializerSettings));
- // writer.Close();
- // response.Close();
- // }
- //}
- }
- }
- }
- catch (Exception ex)
- {
- EasyModbusClient.util.CommonUtil.WriteAccessLog(DateTime.Now + ">>>===HTTP Server监听器异常 {0}信息 : >>>>===" + ex.ToString());
- listener.Stop();
- HttpServer();
- }
- }
- });
- task.Wait();
- }
- }
- }
|