修复导致服务端崩溃的bug

This commit is contained in:
SpringHgui 2021-06-21 22:28:34 +08:00
parent 841d1e5c40
commit 0d1c57dabd
3 changed files with 11 additions and 13 deletions

View File

@ -29,15 +29,13 @@ namespace FastTunnel.Core.Handlers.Server
if (!string.IsNullOrEmpty(SwapMsg.msgId) && server.RequestTemp.TryGetValue(SwapMsg.msgId, out request))
{
// Swap
server.RequestTemp.TryRemove(SwapMsg.msgId, out _);
new SocketSwap(request.CustomerClient, client)
.BeforeSwap(() =>
{
if (request.Buffer != null) client.Send(request.Buffer);
})
.StartSwapAsync();
server.RequestTemp.TryRemove(SwapMsg.msgId, out _);
}
else
{

View File

@ -105,8 +105,15 @@ namespace FastTunnel.Core.Listener
// Accept the next connection request
StartAccept(e);
// 将此客户端交由Dispatcher进行管理
_requestDispatcher.Dispatch(accept);
try
{
// 将此客户端交由Dispatcher进行管理
_requestDispatcher.Dispatch(accept);
}
catch (Exception ex)
{
_logerr.LogError(ex, "RequestDispatcher Fail");
}
}
else
{

View File

@ -11,14 +11,7 @@ namespace FastTunnel.Core.Extensions
public static void SendCmd<T>(this Socket socket, Message<T> message)
where T : TunnelMassage
{
try
{
socket.Send(Encoding.UTF8.GetBytes(message.ToJson() + "\n"));
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
socket.Send(Encoding.UTF8.GetBytes(message.ToJson() + "\n"));
}
}
}