From 30491fe24e1c044bd50f14759bb7a1265fe14c31 Mon Sep 17 00:00:00 2001 From: SpringHgui <740360381@qq.com> Date: Wed, 25 Dec 2019 10:11:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E6=84=9F=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + FastTunnel.Client/appsettings.json | 6 +++--- FastTunnel.Core/Client/SuiDaoClient.cs | 16 +++++++++++++--- .../Extensions/MessageExtension.cs | 4 ---- .../Extensions/ObjectExtensions.cs | 15 +++++++++++++++ FastTunnel.Core/Models/Message.cs | 7 +++++++ FastTunnel.Core/Server/SuiDaoServer.cs | 19 ++++++++++++------- 7 files changed, 51 insertions(+), 17 deletions(-) create mode 100644 FastTunnel.Core/Extensions/ObjectExtensions.cs diff --git a/.gitignore b/.gitignore index c643516..36aa9b8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ obj /FastTunnel.Server/*.user /FastTunnel.Client/Properties/PublishProfiles/*.user /FastTunnel.Server/Properties/PublishProfiles/*.user +/FastTunnel.Client/Properties/PublishProfiles/*.pubxml diff --git a/FastTunnel.Client/appsettings.json b/FastTunnel.Client/appsettings.json index 9a89baf..78142ef 100644 --- a/FastTunnel.Client/appsettings.json +++ b/FastTunnel.Client/appsettings.json @@ -9,9 +9,9 @@ "ClientSettings": { "Common": { // 服务端公网ip, 对应服务端配置文件的 BindAddr - // "ServerAddr": "144.202.109.110", + "ServerAddr": "154.202.58.219", - "ServerAddr": "127.0.0.1", + //"ServerAddr": "127.0.0.1", // 服务端通信端口,对应服务端配置文件的 BindPort "ServerPort": 1271 @@ -29,7 +29,7 @@ }, { "LocalIp": "127.0.0.1", - "LocalPort": 80, + "LocalPort": 9000, "SubDomain": "test" }, { diff --git a/FastTunnel.Core/Client/SuiDaoClient.cs b/FastTunnel.Core/Client/SuiDaoClient.cs index 530109d..048b472 100644 --- a/FastTunnel.Core/Client/SuiDaoClient.cs +++ b/FastTunnel.Core/Client/SuiDaoClient.cs @@ -10,6 +10,7 @@ using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; +using FastTunnel.Core.Extensions; namespace FastTunnel.Core.Client { @@ -63,7 +64,6 @@ namespace FastTunnel.Core.Client lastBuffer = null; } - _logger.Info($"收到服务端 {words}"); var msgs = words.Split("\n"); try @@ -98,8 +98,6 @@ namespace FastTunnel.Core.Client try { Msg = JsonConvert.DeserializeObject>(words); - _logger.Info($"收到服务端指令 {Msg.MessageType}"); - switch (Msg.MessageType) { case MessageType.C_Heart: @@ -128,6 +126,18 @@ namespace FastTunnel.Core.Client break; case MessageType.C_SwapMsg: case MessageType.C_LogIn: + case MessageType.Info: + var info = Msg.Content.ToJson(); + _logger.Info(info); + break; + case MessageType.Debug: + var debug = Msg.Content.ToJson(); + _logger.Debug(debug); + break; + case MessageType.Error: + var err = Msg.Content.ToJson(); + _logger.Error(err); + break; default: throw new Exception("参数异常"); } diff --git a/FastTunnel.Core/Extensions/MessageExtension.cs b/FastTunnel.Core/Extensions/MessageExtension.cs index b34904a..a46f527 100644 --- a/FastTunnel.Core/Extensions/MessageExtension.cs +++ b/FastTunnel.Core/Extensions/MessageExtension.cs @@ -8,9 +8,5 @@ namespace FastTunnel.Core.Extensions { public static class MessageExtension { - public static string ToJson(this Message message) - { - return JsonConvert.SerializeObject(message, Formatting.None); - } } } diff --git a/FastTunnel.Core/Extensions/ObjectExtensions.cs b/FastTunnel.Core/Extensions/ObjectExtensions.cs new file mode 100644 index 0000000..82cddee --- /dev/null +++ b/FastTunnel.Core/Extensions/ObjectExtensions.cs @@ -0,0 +1,15 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace FastTunnel.Core.Extensions +{ + public static class ObjectExtensions + { + public static string ToJson(this object message) + { + return JsonConvert.SerializeObject(message, Formatting.None); + } + } +} diff --git a/FastTunnel.Core/Models/Message.cs b/FastTunnel.Core/Models/Message.cs index 35acbb5..52d7a16 100644 --- a/FastTunnel.Core/Models/Message.cs +++ b/FastTunnel.Core/Models/Message.cs @@ -21,5 +21,12 @@ namespace FastTunnel.Core.Models // server use below S_NewCustomer, S_NewSSH, + + // twoway + Info, + + Debug, + + Error } } diff --git a/FastTunnel.Core/Server/SuiDaoServer.cs b/FastTunnel.Core/Server/SuiDaoServer.cs index a19dffb..d4e7dee 100644 --- a/FastTunnel.Core/Server/SuiDaoServer.cs +++ b/FastTunnel.Core/Server/SuiDaoServer.cs @@ -168,19 +168,21 @@ namespace FastTunnel.Core.Server { foreach (var item in requet.ClientConfig.Webs) { - var key = $"{item.SubDomain}.{serverSettings.Domain}".Trim(); - if (WebList.ContainsKey(key)) + var hostName = $"{item.SubDomain}.{serverSettings.Domain}".Trim(); + if (WebList.ContainsKey(hostName)) { - _logger.Debug($"renew domain '{key}'"); + _logger.Debug($"renew domain '{hostName}'"); - WebList.Remove(key); - WebList.Add(key, new WebInfo { Socket = client, WebConfig = item }); + WebList.Remove(hostName); + WebList.Add(hostName, new WebInfo { Socket = client, WebConfig = item }); } else { - _logger.Debug($"new domain '{key}'"); - WebList.Add(key, new WebInfo { Socket = client, WebConfig = item }); + _logger.Debug($"new domain '{hostName}'"); + WebList.Add(hostName, new WebInfo { Socket = client, WebConfig = item }); } + + client.Send(new Message { MessageType = MessageType.Info, Content = $"TunnelForWeb is OK: you can visit {item.LocalIp}:{item.LocalPort} from http://{hostName}:{serverSettings.ProxyPort_HTTP}" }); } } @@ -206,6 +208,8 @@ namespace FastTunnel.Core.Server _logger.Error(ex); continue; } + + client.Send(new Message { MessageType = MessageType.Info, Content = $"Tunnel For ProxyPort is OK: {requet.ClientConfig.Common.ServerAddr}:{item.RemotePort}->{item.LocalIp}:{item.LocalPort}" }); } } break; @@ -229,6 +233,7 @@ namespace FastTunnel.Core.Server { // 未找到,关闭连接 _logger.Error($"未找到请求:{msgId}"); + client.Send(new Message { MessageType = MessageType.Error, Content = $"未找到请求:{msgId}" }); } break; case MessageType.S_NewCustomer: