mirror of
https://github.com/FastTunnel/FastTunnel.git
synced 2025-02-08 02:39:29 +08:00
移除超时
This commit is contained in:
parent
e399c6a459
commit
f1b6492435
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
|
|
|
@ -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) =>
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 _);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user