From 2e5e01a35de2f1bac1066cb90a7080fc08a3f943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E9=9C=B2=E5=B0=A7?= Date: Thu, 27 Oct 2022 09:24:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E7=BD=91=E7=BB=86=E8=8A=82=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 93_nei_core/Ewide.sln | 4 +- .../HttpService.cs | 22 +- .../ClientService.cs | 318 +++++++++--------- ...Service_Transfer_Client_coreService.csproj | 16 +- .../TcpClient.cs | 2 +- .../applicationconfig.json | 12 +- ...f_Service_Transfer_core_client.Test.csproj | 14 + .../Getf_Service_Transfer_core_client.csproj | 7 + .../Program.cs | 12 +- .../log4net.config | 134 ++++++++ 10 files changed, 364 insertions(+), 177 deletions(-) create mode 100644 93_nei_core/Getf_Service_Transfer_core_client.Test/Getf_Service_Transfer_core_client.Test.csproj create mode 100644 93_nei_core/Getf_Service_Transfer_core_client/log4net.config diff --git a/93_nei_core/Ewide.sln b/93_nei_core/Ewide.sln index f4e4c94..295b283 100644 --- a/93_nei_core/Ewide.sln +++ b/93_nei_core/Ewide.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.1.32421.90 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31624.102 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Getf_Service_Transfer_core_client", "Getf_Service_Transfer_core_client\Getf_Service_Transfer_core_client.csproj", "{F037E01A-741E-490C-91F0-76D97137DFA6}" EndProject diff --git a/93_nei_core/Getf_Service_Transfer_Client_Service_HttpHandler/HttpService.cs b/93_nei_core/Getf_Service_Transfer_Client_Service_HttpHandler/HttpService.cs index bf07418..98926f5 100644 --- a/93_nei_core/Getf_Service_Transfer_Client_Service_HttpHandler/HttpService.cs +++ b/93_nei_core/Getf_Service_Transfer_Client_Service_HttpHandler/HttpService.cs @@ -51,15 +51,16 @@ namespace Getf_Service_Transfer_Client_Service_HttpHandler { var requestStream = httpWebRequest.GetRequestStream(); SetRequestStream(httpWebRequest, requestStream, jObject, encoding); - r = GetResponse(httpWebRequest, encoding); + r = GetResponse(httpWebRequest, jObject, encoding); requestStream.Close(); requestStream.Dispose(); } else { - r = GetResponse(httpWebRequest, encoding); + r = GetResponse(httpWebRequest, null, encoding); } msg = String.Empty; + _LogHelper.Info($"93段接口:method:{method},url:{url},参数:{jObject["Data"]},结果:{r}"); return r; } catch (WebException e) @@ -72,20 +73,20 @@ namespace Getf_Service_Transfer_Client_Service_HttpHandler using (StreamReader streamReader = new StreamReader(stream)) { msg += streamReader.ReadToEnd(); - _LogHelper.Info("请求错误原因为:" + msg); + _LogHelper.Info("1:请求错误原因为:" + msg); } } else { msg += e.Message; - _LogHelper.Info("请求错误原因为:" + msg); + _LogHelper.Info("2:请求错误原因为:" + msg); } } } catch (Exception e) { msg = e.Message; - _LogHelper.Info("请求错误原因为:" + msg); + _LogHelper.Info("3:请求错误原因为:" + msg); } return null; } @@ -126,12 +127,21 @@ namespace Getf_Service_Transfer_Client_Service_HttpHandler { var param = jObject["Param"]?.Value() ?? String.Empty; streamWrite.Write(param); + + var jdata = jObject["Data"]; + if (jdata != null) + { + var Data = jdata.ToString(); + var _bytes = encoding.GetBytes(Data); + httpWebRequest.ContentLength = _bytes.Length; + requestStream.Write(_bytes, 0, _bytes.Length); + } } } private static readonly string[] TextContentTypes = new string[] { "application/json", "text/html" }; - private object GetResponse(HttpWebRequest httpWebRequest, Encoding encoding) + private object GetResponse(HttpWebRequest httpWebRequest, JObject jObject, Encoding encoding) { var response = httpWebRequest.GetResponse(); using (var stream = response.GetResponseStream()) diff --git a/93_nei_core/Getf_Service_Transfer_Client_coreService/ClientService.cs b/93_nei_core/Getf_Service_Transfer_Client_coreService/ClientService.cs index 8aee2cb..40439da 100644 --- a/93_nei_core/Getf_Service_Transfer_Client_coreService/ClientService.cs +++ b/93_nei_core/Getf_Service_Transfer_Client_coreService/ClientService.cs @@ -21,134 +21,137 @@ namespace Getf_Service_Transfer_Client_coreService { public class ClientService : IDisposable { - private DateTime LastRecvTime = DateTime.Now; - LogHelper _LogHelper = new LogHelper(); - private readonly IDataHandler DataHandler; + private DateTime LastRecvTime = DateTime.Now; + LogHelper _LogHelper = new LogHelper(); + private readonly IDataHandler DataHandler; private TcpClient TcpClient; private readonly string Ip; private readonly int Port; private Thread HeartThread; private bool IsRetrying; - public ClientService() + public ClientService() { - //var serviceAddressInfo = "21".Split("1"); - var serviceAddressInfo = App.Configuration["Target:ServiceAddressInfo"].Split(':'); + //var serviceAddressInfo = "21".Split("1"); + var serviceAddressInfo = App.Configuration["Target:ServiceAddressInfo"].Split(':'); Ip = serviceAddressInfo[0]; Port = int.Parse(serviceAddressInfo[1]); - //var assemblyInfo = "21".Split("1"); - var assemblyInfo = App.Configuration["Target:DataHandlerClassInfo"].Split(','); - DataHandler = Assembly.Load(assemblyInfo[1]).CreateInstance(assemblyInfo[0]) as IDataHandler; + //var assemblyInfo = "21".Split("1"); + var assemblyInfo = App.Configuration["Target:DataHandlerClassInfo"].Split(','); + DataHandler = Assembly.Load(assemblyInfo[1]).CreateInstance(assemblyInfo[0]) as IDataHandler; //_LogHelper = new LogHelper(); } - public void Start() - { - StartNewEasyClient(); - DoHeart(); - } + public void Start() + { + StartNewEasyClient(); + DoHeart(); + } - private void DoDebug() - { - for (var i = 0; i < 5; i++) - { - Thread t = new Thread(() => - { - while (true) - { - var r = GetRegisterEntity(); - r.Head.Type = 4; - r.Data = new byte[100 * 1024 * 1024]; - Send(r.ToByte()); - Thread.Sleep(100); - } - }); - t.Start(); - } - } + private void DoDebug() + { + for (var i = 0; i < 5; i++) + { + Thread t = new Thread(() => + { + while (true) + { + var r = GetRegisterEntity(); + r.Head.Type = 4; + r.Data = new byte[100 * 1024 * 1024]; + Send(r.ToByte()); + Thread.Sleep(100); + } + }); + t.Start(); + } + } - private void StartNewEasyClient() - { - TcpClient = new TcpClient(Ip, Port, OnDataGeted, OnConnected, OnClosed, OnError); - } + private void StartNewEasyClient() + { + if (TcpClient == null || !TcpClient.IsConnected) + TcpClient = new TcpClient(Ip, Port, OnDataGeted, OnConnected, OnClosed, OnError); + else + _LogHelper.Info("已存在可用连接"); + } - private void OnDataGeted(TransInfo transInfo) - { - LastRecvTime = DateTime.Now; - if (transInfo.Body == null)//心跳包 - { - /*//应用已被注册 再试 + private void OnDataGeted(TransInfo transInfo) + { + LastRecvTime = DateTime.Now; + if (transInfo.Body == null)//心跳包 + { + /*//应用已被注册 再试 if (transInfo.TransResultInfo != null && transInfo.TransResultInfo.Code == -210) { Reconnect(null, null); }*/ - if (transInfo.TransResultInfo != null && transInfo.TransResultInfo.Message == "注册成功!") - { - "注册成功".LogInformation(); - _LogHelper.Info("注册成功"); - return; - } - else - { - if (transInfo.TransResultInfo != null && !String.IsNullOrWhiteSpace(transInfo.TransResultInfo.Message)) - { - string info = "发生错误:" + transInfo.TransResultInfo.Message; - info.LogError(); - _LogHelper.Error("发生错误:" + transInfo.TransResultInfo.Message); - } - } - return; - } + if (transInfo.TransResultInfo != null && transInfo.TransResultInfo.Message == "注册成功!") + { + "注册成功".LogInformation(); + _LogHelper.Info("注册成功"); + return; + } + else + { + if (transInfo.TransResultInfo != null && !String.IsNullOrWhiteSpace(transInfo.TransResultInfo.Message)) + { + string info = "发生错误:" + transInfo.TransResultInfo.Message; + info.LogError(); + _LogHelper.Error("发生错误:" + transInfo.TransResultInfo.Message); + } + } + return; + } - var transResult = DataHandler.HandlerData(transInfo); + var transResult = DataHandler.HandlerData(transInfo); - var r = GetRegisterEntity(); - r.Body = new TransBody() - { - Key = transInfo.Body.Key - }; - r.Head.Type = 3; - r.TransResultInfo = transResult.TransResultInfo; - r.Data = transResult.Data; + var r = GetRegisterEntity(); + r.Body = new TransBody() + { + Key = transInfo.Body.Key + }; + r.Head.Type = 3; + r.TransResultInfo = transResult.TransResultInfo; + r.Data = transResult.Data; - Send(r.ToByte()); - } + Send(r.ToByte()); + } - private void OnConnected(object sender, EventArgs e) - { - IsRetrying = false; - _LogHelper.Info("连接成功"); - "连接成功".LogInformation(); - Send(GetRegisterEntity().ToByte()); - } + private void OnConnected(object sender, EventArgs e) + { + IsRetrying = false; + _LogHelper.Info("连接成功"); + "连接成功".LogInformation(); + Send(GetRegisterEntity().ToByte()); + } - private void OnClosed(object sender, EventArgs e) - { - "EasyClient.OnClosed".LogInformation(); - _LogHelper.Info("EasyClient.OnClosed"); - ReStart(); - } + private void OnClosed(object sender, EventArgs e) + { + "EasyClient.OnClosed".LogInformation(); + _LogHelper.Info("EasyClient.OnClosed"); + ReStart(); + } - private void OnError(object sender, EventArgs e) - { - string warn = "连接出错,原因为:" + ((ErrorEventArgs)e).Exception.Message; - warn.LogWarning(); - //_LogHelper.Info("连接出错,原因为:" + ((ErrorEventArgs)e).Exception.Message); - ReStart(); - } + private void OnError(object sender, ErrorEventArgs e) + { + string warn = "连接出错,原因为:" + ((ErrorEventArgs)e).Exception.Message; + warn.LogWarning(); + //_LogHelper.Info("连接出错,原因为:" + ((ErrorEventArgs)e).Exception.Message); + ReStart(); + } - private void ReStart() - { - Thread.Sleep(5000); - StartNewEasyClient(); - } + private void ReStart() + { + //Thread.Sleep(5000); + StartNewEasyClient(); + } - private void DoHeart() - { + private void DoHeart() + { #if DEBUG - /*for (int i = 0; i < 100; i++) + /*for (int i = 0; i < 100; i++) { var testThread = new Thread(() => { @@ -162,65 +165,70 @@ namespace Getf_Service_Transfer_Client_coreService #endif - HeartThread = new Thread(() => - { - while (true) - { - if ((DateTime.Now - LastRecvTime).TotalMinutes > 10) - { - _LogHelper.Error("超过一分钟没收到心跳包的反馈信息"); - TcpClient.HeartLost(); - } - if (TcpClient.IsConnected) - { - SendHeart(); - } - Thread.Sleep(5 * 1000); - } - }); - HeartThread.Start(); - } + HeartThread = new Thread(() => + { + //_LogHelper.Info("开始发送心跳包"); + while (true) + { + //_LogHelper.Info("开始发送心跳包1"); + if ((DateTime.Now - LastRecvTime).TotalMinutes > 1) + { + _LogHelper.Info("超过一分钟没收到心跳包的反馈信息"); + _LogHelper.Error("超过一分钟没收到心跳包的反馈信息"); + TcpClient.HeartLost(); + } + if (TcpClient.IsConnected) + { + //_LogHelper.Info("存在连接,开始发送心跳包"); + SendHeart(); + //_LogHelper.Info("存在连接,发送心跳包完成"); + } + Thread.Sleep(5 * 1000); + } + }); + HeartThread.Start(); + } - private void SendHeart() - { - var r = GetRegisterEntity(); - r.Head.Type = 4; - Send(r.ToByte()); - } + private void SendHeart() + { + var r = GetRegisterEntity(); + r.Head.Type = 4; + Send(r.ToByte()); + } - private void Send(byte[] data) - { - if (!TcpClient.IsConnected) return; - try - { - TcpClient.Send(data); - } - catch (Exception e) - { - _LogHelper.Error("发送错误原因为:" + e.Message); - } - } + private void Send(byte[] data) + { + if (!TcpClient.IsConnected) return; + try + { + TcpClient.Send(data); + } + catch (Exception e) + { + _LogHelper.Error("发送错误原因为:" + e.Message); + } + } - private TransInfo GetRegisterEntity() - { - var ts = TypeHelper.GetTimeStamp(); - var r = new TransInfo() - { - Head = new TransHead() - { - Type = 1, - AppID = App.Configuration["Target:AppID"], - AppSecret = App.Configuration["Target:AppSecret"], - TimeStamp = ts, - Sign = Md5Helper.Md5(ts + App.Configuration["Target:Key"]) - } - }; - return r; - } + private TransInfo GetRegisterEntity() + { + var ts = TypeHelper.GetTimeStamp(); + var r = new TransInfo() + { + Head = new TransHead() + { + Type = 1, + AppID = App.Configuration["Target:AppID"], + AppSecret = App.Configuration["Target:AppSecret"], + TimeStamp = ts, + Sign = Md5Helper.Md5(ts + App.Configuration["Target:Key"]) + } + }; + return r; + } - public void Dispose() - { - TcpClient.Dispose(); - } - } + public void Dispose() + { + TcpClient.Dispose(); + } + } } diff --git a/93_nei_core/Getf_Service_Transfer_Client_coreService/Getf_Service_Transfer_Client_coreService.csproj b/93_nei_core/Getf_Service_Transfer_Client_coreService/Getf_Service_Transfer_Client_coreService.csproj index f73927d..eb6cb5a 100644 --- a/93_nei_core/Getf_Service_Transfer_Client_coreService/Getf_Service_Transfer_Client_coreService.csproj +++ b/93_nei_core/Getf_Service_Transfer_Client_coreService/Getf_Service_Transfer_Client_coreService.csproj @@ -4,6 +4,16 @@ net5.0 + + + + + + + PreserveNewest + + + @@ -12,10 +22,4 @@ - - - PreserveNewest - - - diff --git a/93_nei_core/Getf_Service_Transfer_Client_coreService/TcpClient.cs b/93_nei_core/Getf_Service_Transfer_Client_coreService/TcpClient.cs index 892e1aa..f559e40 100644 --- a/93_nei_core/Getf_Service_Transfer_Client_coreService/TcpClient.cs +++ b/93_nei_core/Getf_Service_Transfer_Client_coreService/TcpClient.cs @@ -20,7 +20,7 @@ namespace Getf_Service_Transfer_Client_coreService Action OnClosed; public bool IsConnected { get { return EasyClient.IsConnected; } } - public TcpClient(string ip, int port, Action onDataGeted, Action onConnected, Action onClosed, Action onError) + public TcpClient(string ip, int port, Action onDataGeted, Action onConnected, Action onClosed, Action onError) { Ip = ip; Port = port; diff --git a/93_nei_core/Getf_Service_Transfer_Client_coreService/applicationconfig.json b/93_nei_core/Getf_Service_Transfer_Client_coreService/applicationconfig.json index d850dc8..2e51b7f 100644 --- a/93_nei_core/Getf_Service_Transfer_Client_coreService/applicationconfig.json +++ b/93_nei_core/Getf_Service_Transfer_Client_coreService/applicationconfig.json @@ -17,11 +17,13 @@ ] }, "Target": { - "ServiceAddressInfo": "127.0.0.1:8111", //目标服务器地址 - "DataHandlerClassInfo": "Getf_Service_Transfer_Client_Service_HttpHandler.HttpDataHandler,Getf_Service_Transfer_Client_Service_HttpHandler", - "AppID": "test", - "AppSecret": "b7ybdg482IXFsojQ4feDHf4NaiSLRtFjL7MVI6ysnvjrZ6jikFX74tVZhZKYG23A", - "Key": "TVgSoGYNJrnU7Kg6Csuodh4IdxqZGxpEJAdRlEcTn72KlUgAiHcr7bdxLKFf9pJ6" + "ServiceAddressInfo": "127.0.0.1:8002", //目标服务器地址 + "ServiceAddressInfo2": "10.19.94.135:8002", //目标服务器地址 + "ServiceAddressInfo3": "115.238.132.35:6000", //目标服务器地址 + "DataHandlerClassInfo": "Getf_Service_Transfer_Client_Service_HttpHandler.HttpJsonDataHandler,Getf_Service_Transfer_Client_Service_HttpHandler", + "AppID": "Reg.Custom.SourceCode", + "AppSecret": "ab2cb0aa78cb986d3d05059b8f9bafee", + "Key": "86bf52124bc423351c9da81cb3dd8c94" }, "Logging": { "LogLevel": { diff --git a/93_nei_core/Getf_Service_Transfer_core_client.Test/Getf_Service_Transfer_core_client.Test.csproj b/93_nei_core/Getf_Service_Transfer_core_client.Test/Getf_Service_Transfer_core_client.Test.csproj new file mode 100644 index 0000000..9ae4764 --- /dev/null +++ b/93_nei_core/Getf_Service_Transfer_core_client.Test/Getf_Service_Transfer_core_client.Test.csproj @@ -0,0 +1,14 @@ + + + + net5.0 + + Exe + + + + + + + + diff --git a/93_nei_core/Getf_Service_Transfer_core_client/Getf_Service_Transfer_core_client.csproj b/93_nei_core/Getf_Service_Transfer_core_client/Getf_Service_Transfer_core_client.csproj index 2f9772c..01a88b0 100644 --- a/93_nei_core/Getf_Service_Transfer_core_client/Getf_Service_Transfer_core_client.csproj +++ b/93_nei_core/Getf_Service_Transfer_core_client/Getf_Service_Transfer_core_client.csproj @@ -9,10 +9,17 @@ + + + + + PreserveNewest + + diff --git a/93_nei_core/Getf_Service_Transfer_core_client/Program.cs b/93_nei_core/Getf_Service_Transfer_core_client/Program.cs index 324d0db..40ec8b2 100644 --- a/93_nei_core/Getf_Service_Transfer_core_client/Program.cs +++ b/93_nei_core/Getf_Service_Transfer_core_client/Program.cs @@ -44,8 +44,16 @@ namespace Getf_Service_Transfer_core_client }; }); // services.AddHostedService(); + })//log4net + .ConfigureLogging(p => + { + p.AddFilter("System", LogLevel.Warning); //˵ϵͳĬϵһЩ־ + p.AddFilter("Microsoft", LogLevel.Warning);//˵ϵͳĬϵһЩ־ + var path = AppContext.BaseDirectory + "\\log4net.config"; + //ʾlog4net.configļӦóĿ¼£Ҳָļ· + p.AddLog4Net(path); }) - //.UseWindowsService() ///windows - .UseSystemd(); //LIUNX + .UseWindowsService(); ///windows + // .UseSystemd(); //LIUNX } } diff --git a/93_nei_core/Getf_Service_Transfer_core_client/log4net.config b/93_nei_core/Getf_Service_Transfer_core_client/log4net.config new file mode 100644 index 0000000..e8d3515 --- /dev/null +++ b/93_nei_core/Getf_Service_Transfer_core_client/log4net.config @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file