移除超时

This commit is contained in:
springhgui 2021-12-26 23:04:48 +08:00
parent e399c6a459
commit f1b6492435
7 changed files with 15 additions and 42 deletions

View File

@ -1,19 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FastTunnel.Core.Utility.Extensions
{
public static class DateTimeExtensions
{
public static string GetChinaTicks(this DateTime dateTime)
{
// 北京时间相差8小时
DateTime startTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 8, 0, 0, 0), TimeZoneInfo.Local);
long t = (dateTime.Ticks - startTime.Ticks) / 10000;
return t.ToString();
}
}
}

View File

@ -20,13 +20,13 @@ namespace FastTunnel.Core.Forwarder
{
public class FastTunnelForwarderHttpClientFactory : ForwarderHttpClientFactory
{
ILogger<FastTunnelForwarderHttpClientFactory> _logger;
ILogger<FastTunnelForwarderHttpClientFactory> logger;
FastTunnelServer _fastTunnelServer;
public FastTunnelForwarderHttpClientFactory(ILogger<FastTunnelForwarderHttpClientFactory> logger, FastTunnelServer fastTunnelServer)
{
this._fastTunnelServer = fastTunnelServer;
this._logger = logger;
this.logger = logger;
}
protected override void ConfigureHandler(ForwarderHttpClientContext context, SocketsHttpHandler handler)
@ -62,9 +62,9 @@ namespace FastTunnel.Core.Forwarder
var msgId = Guid.NewGuid().ToString().Replace("-", "");
TaskCompletionSource<Stream> tcs = new(cancellation);
_logger.LogDebug($"[Http]Swap开始 {msgId}|{host}=>{web.WebConfig.LocalIp}:{web.WebConfig.LocalPort}");
logger.LogDebug($"[Http]Swap开始 {msgId}|{host}=>{web.WebConfig.LocalIp}:{web.WebConfig.LocalPort}");
tcs.SetTimeOut(20000, null);
//tcs.SetTimeOut(20000, () => { logger.LogDebug($"[Proxy TimeOut]:{msgId}"); });
_fastTunnelServer.ResponseTasks.TryAdd(msgId, tcs);
@ -74,7 +74,7 @@ namespace FastTunnel.Core.Forwarder
await web.Socket.SendCmdAsync(MessageType.SwapMsg, $"{msgId}|{web.WebConfig.LocalIp}:{web.WebConfig.LocalPort}", cancellation);
var res = await tcs.Task;
_logger.LogDebug($"[Http]Swap OK {msgId}");
logger.LogDebug($"[Http]Swap OK {msgId}");
return res;
}
catch (WebSocketException)

View File

@ -54,7 +54,7 @@ namespace FastTunnel.Core.Forwarder.MiddleWare
responseAwaiter.TrySetResult(reverseConnection);
var closedAwaiter = new TaskCompletionSource<object>();
closedAwaiter.SetTimeOut(20000, null);
//closedAwaiter.SetTimeOut(20000, () => { logger.LogDebug($"[Swap TimeOut]:{requestId}"); });
lifetime.ConnectionClosed.Register((task) =>
{

View File

@ -1,8 +1,5 @@
using FastTunnel.Core.Config;
using FastTunnel.Core.Client;
using FastTunnel.Core.Models;
using FastTunnel.Core.Client;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Sockets;
using System.Text;
@ -10,13 +7,6 @@ using System.Threading;
using System.Threading.Tasks;
using FastTunnel.Core.Sockets;
using Microsoft.Extensions.Logging;
using FastTunnel.Core.Utility.Extensions;
using System.Net.WebSockets;
using FastTunnel.Core.Forwarder;
using Microsoft;
using Microsoft.AspNetCore.DataProtection;
using System.Data.Common;
using Microsoft.AspNetCore.Hosting.Server;
using System.Net.Security;
namespace FastTunnel.Core.Handlers.Client

View File

@ -40,7 +40,7 @@ namespace FastTunnel.Core.Dispatchers
logger.LogDebug($"[Forward]Swap开始 {msgId}|{_config.RemotePort}=>{_config.LocalIp}:{_config.LocalPort}");
var tcs = new TaskCompletionSource<Stream>();
tcs.SetTimeOut(20000, null);
//tcs.SetTimeOut(10000, () => { logger.LogDebug($"[Dispatch TimeOut]:{msgId}"); });
_server.ResponseTasks.TryAdd(msgId, tcs);
@ -53,7 +53,7 @@ namespace FastTunnel.Core.Dispatchers
// TODO:客户端已掉线,但是没有移除对端口的监听
logger.LogError($"[Forward]Swap 客户端已离线 {sex.Message}");
tcs.TrySetCanceled();
_server.ResponseTasks.TryRemove(msgId, out _);
_socket.Close();
return;
}
catch (Exception ex)
@ -61,7 +61,7 @@ namespace FastTunnel.Core.Dispatchers
// 网络不稳定
logger.LogError(ex, $"[Forward]Swap Exception");
tcs.TrySetCanceled();
_server.ResponseTasks.TryRemove(msgId, out _);
_socket.Close();
return;
}
@ -74,9 +74,12 @@ namespace FastTunnel.Core.Dispatchers
}
catch (Exception ex)
{
_server.ResponseTasks.TryRemove(msgId, out _);
logger.LogDebug($"[Forward]Swap Error {msgId}" + ex.Message);
}
finally
{
_server.ResponseTasks.TryRemove(msgId, out _);
}
}
}
}

View File

@ -118,7 +118,7 @@ namespace FastTunnel.Core.Handlers.Server
await client.webSocket.SendCmdAsync(MessageType.Log, TunnelResource.NoTunnel, CancellationToken.None);
}
public async Task<bool> HandlerMsg(FastTunnelServer fastTunnelServer, TunnelClient tunnelClient, string lineCmd)
public virtual async Task<bool> HandlerMsg(FastTunnelServer fastTunnelServer, TunnelClient tunnelClient, string lineCmd)
{
var msg = JsonSerializer.Deserialize<LogInMassage>(lineCmd);
await HandleLoginAsync(fastTunnelServer, tunnelClient, msg);

View File

@ -26,7 +26,6 @@ namespace FastTunnel.Core.Listener
bool shutdown = false;
ForwardDispatcher _requestDispatcher;
Socket listenSocket;
public IList<Socket> ConnectedSockets = new List<Socket>();
WebSocket client;
public PortProxyListener(string ip, int port, ILogger logerr, WebSocket client)