mirror of
https://github.com/FastTunnel/FastTunnel.git
synced 2025-02-08 02:39:29 +08:00
优化客户端感知
This commit is contained in:
parent
9ab6701c42
commit
30491fe24e
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -5,3 +5,4 @@ obj
|
|||
/FastTunnel.Server/*.user
|
||||
/FastTunnel.Client/Properties/PublishProfiles/*.user
|
||||
/FastTunnel.Server/Properties/PublishProfiles/*.user
|
||||
/FastTunnel.Client/Properties/PublishProfiles/*.pubxml
|
||||
|
|
|
@ -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"
|
||||
},
|
||||
{
|
||||
|
|
|
@ -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("参数异常");
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
15
FastTunnel.Core/Extensions/ObjectExtensions.cs
Normal file
15
FastTunnel.Core/Extensions/ObjectExtensions.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -21,5 +21,12 @@ namespace FastTunnel.Core.Models
|
|||
// server use below
|
||||
S_NewCustomer,
|
||||
S_NewSSH,
|
||||
|
||||
// twoway
|
||||
Info,
|
||||
|
||||
Debug,
|
||||
|
||||
Error
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue
Block a user