优化客户端感知

This commit is contained in:
SpringHgui 2019-12-25 10:11:58 +08:00
parent 9ab6701c42
commit 30491fe24e
7 changed files with 51 additions and 17 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@ obj
/FastTunnel.Server/*.user /FastTunnel.Server/*.user
/FastTunnel.Client/Properties/PublishProfiles/*.user /FastTunnel.Client/Properties/PublishProfiles/*.user
/FastTunnel.Server/Properties/PublishProfiles/*.user /FastTunnel.Server/Properties/PublishProfiles/*.user
/FastTunnel.Client/Properties/PublishProfiles/*.pubxml

View File

@ -9,9 +9,9 @@
"ClientSettings": { "ClientSettings": {
"Common": { "Common": {
// ip, BindAddr // ip, BindAddr
// "ServerAddr": "144.202.109.110", "ServerAddr": "154.202.58.219",
"ServerAddr": "127.0.0.1", //"ServerAddr": "127.0.0.1",
// BindPort // BindPort
"ServerPort": 1271 "ServerPort": 1271
@ -29,7 +29,7 @@
}, },
{ {
"LocalIp": "127.0.0.1", "LocalIp": "127.0.0.1",
"LocalPort": 80, "LocalPort": 9000,
"SubDomain": "test" "SubDomain": "test"
}, },
{ {

View File

@ -10,6 +10,7 @@ using System.Net.Sockets;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using FastTunnel.Core.Extensions;
namespace FastTunnel.Core.Client namespace FastTunnel.Core.Client
{ {
@ -63,7 +64,6 @@ namespace FastTunnel.Core.Client
lastBuffer = null; lastBuffer = null;
} }
_logger.Info($"收到服务端 {words}");
var msgs = words.Split("\n"); var msgs = words.Split("\n");
try try
@ -98,8 +98,6 @@ namespace FastTunnel.Core.Client
try try
{ {
Msg = JsonConvert.DeserializeObject<Message<object>>(words); Msg = JsonConvert.DeserializeObject<Message<object>>(words);
_logger.Info($"收到服务端指令 {Msg.MessageType}");
switch (Msg.MessageType) switch (Msg.MessageType)
{ {
case MessageType.C_Heart: case MessageType.C_Heart:
@ -128,6 +126,18 @@ namespace FastTunnel.Core.Client
break; break;
case MessageType.C_SwapMsg: case MessageType.C_SwapMsg:
case MessageType.C_LogIn: 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: default:
throw new Exception("参数异常"); throw new Exception("参数异常");
} }

View File

@ -8,9 +8,5 @@ namespace FastTunnel.Core.Extensions
{ {
public static class MessageExtension public static class MessageExtension
{ {
public static string ToJson<T>(this Message<T> message)
{
return JsonConvert.SerializeObject(message, Formatting.None);
}
} }
} }

View File

@ -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);
}
}
}

View File

@ -21,5 +21,12 @@ namespace FastTunnel.Core.Models
// server use below // server use below
S_NewCustomer, S_NewCustomer,
S_NewSSH, S_NewSSH,
// twoway
Info,
Debug,
Error
} }
} }

View File

@ -168,19 +168,21 @@ namespace FastTunnel.Core.Server
{ {
foreach (var item in requet.ClientConfig.Webs) foreach (var item in requet.ClientConfig.Webs)
{ {
var key = $"{item.SubDomain}.{serverSettings.Domain}".Trim(); var hostName = $"{item.SubDomain}.{serverSettings.Domain}".Trim();
if (WebList.ContainsKey(key)) if (WebList.ContainsKey(hostName))
{ {
_logger.Debug($"renew domain '{key}'"); _logger.Debug($"renew domain '{hostName}'");
WebList.Remove(key); WebList.Remove(hostName);
WebList.Add(key, new WebInfo { Socket = client, WebConfig = item }); WebList.Add(hostName, new WebInfo { Socket = client, WebConfig = item });
} }
else else
{ {
_logger.Debug($"new domain '{key}'"); _logger.Debug($"new domain '{hostName}'");
WebList.Add(key, new WebInfo { Socket = client, WebConfig = item }); WebList.Add(hostName, new WebInfo { Socket = client, WebConfig = item });
} }
client.Send(new Message<string> { 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); _logger.Error(ex);
continue; continue;
} }
client.Send(new Message<string> { MessageType = MessageType.Info, Content = $"Tunnel For ProxyPort is OK: {requet.ClientConfig.Common.ServerAddr}:{item.RemotePort}->{item.LocalIp}:{item.LocalPort}" });
} }
} }
break; break;
@ -229,6 +233,7 @@ namespace FastTunnel.Core.Server
{ {
// 未找到,关闭连接 // 未找到,关闭连接
_logger.Error($"未找到请求:{msgId}"); _logger.Error($"未找到请求:{msgId}");
client.Send(new Message<string> { MessageType = MessageType.Error, Content = $"未找到请求:{msgId}" });
} }
break; break;
case MessageType.S_NewCustomer: case MessageType.S_NewCustomer: