优化客户端感知

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.Client/Properties/PublishProfiles/*.user
/FastTunnel.Server/Properties/PublishProfiles/*.user
/FastTunnel.Client/Properties/PublishProfiles/*.pubxml

View File

@ -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"
},
{

View File

@ -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<Message<object>>(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("参数异常");
}

View File

@ -8,9 +8,5 @@ namespace FastTunnel.Core.Extensions
{
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
S_NewCustomer,
S_NewSSH,
// twoway
Info,
Debug,
Error
}
}

View File

@ -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<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);
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;
@ -229,6 +233,7 @@ namespace FastTunnel.Core.Server
{
// 未找到,关闭连接
_logger.Error($"未找到请求:{msgId}");
client.Send(new Message<string> { MessageType = MessageType.Error, Content = $"未找到请求:{msgId}" });
}
break;
case MessageType.S_NewCustomer: