掉线重连

This commit is contained in:
snltty
2024-06-05 00:51:50 +08:00
parent 22ffd2482c
commit cc637bc688
2 changed files with 28 additions and 23 deletions

View File

@@ -99,10 +99,7 @@ namespace cmonitor.client.tunnel
}
finally
{
await writer.CompleteAsync();
Close();
Logger.Instance.Error($"tunnel connection writer offline {ToString()}");
}
}
private async Task ProcessReader()
@@ -134,9 +131,7 @@ namespace cmonitor.client.tunnel
}
finally
{
await reader.CompleteAsync();
Close();
Logger.Instance.Error($"tunnel connection writer offline {ToString()}");
}
}
private unsafe int ReaderHead(ReadOnlySequence<byte> buffer)
@@ -265,6 +260,7 @@ namespace cmonitor.client.tunnel
{
Logger.Instance.Error(ex);
}
Close();
}
finally
{
@@ -277,12 +273,20 @@ namespace cmonitor.client.tunnel
callback = null;
userToken = null;
cancellationTokenSource?.Cancel();
pipe = null;
bufferCache.Clear(true);
Stream?.Close();
Stream?.Dispose();
try
{
pipe?.Writer.Complete();
pipe?.Reader.Complete();
}
catch (Exception)
{
}
pipe = null;
}
public override string ToString()

View File

@@ -6,6 +6,7 @@ using System.IO.Pipelines;
using System.Net;
using System.Net.Security;
using System.Net.Sockets;
using System.Threading;
namespace cmonitor.server
{
@@ -226,6 +227,7 @@ namespace cmonitor.server
int length = await SourceStream.ReadAsync(buffer, cancellationTokenSource.Token);
if (length == 0)
{
Disponse();
break;
}
writer.Advance(length);
@@ -236,12 +238,8 @@ namespace cmonitor.server
}
}
}
catch (OperationCanceledException ex)
catch (OperationCanceledException)
{
if (Logger.Instance.LoggerLevel <= LoggerTypes.DEBUG)
{
Logger.Instance.Error(ex);
}
}
catch (Exception ex)
{
@@ -253,7 +251,7 @@ namespace cmonitor.server
}
finally
{
await writer.CompleteAsync();
Cancel();
}
}
private async Task ProcessReader()
@@ -275,7 +273,6 @@ namespace cmonitor.server
}
catch (OperationCanceledException)
{
}
catch (Exception ex)
{
@@ -283,13 +280,11 @@ namespace cmonitor.server
{
Logger.Instance.Error(ex);
}
if (SourceStream.CanRead == false)
Disponse();
Disponse();
}
finally
{
await reader.CompleteAsync();
Cancel();
}
}
private unsafe int ReaderHead(ReadOnlySequence<byte> buffer)
@@ -372,6 +367,7 @@ namespace cmonitor.server
{
Logger.Instance.Error(ex);
}
Disponse();
}
finally
{
@@ -442,15 +438,19 @@ namespace cmonitor.server
public override void Cancel()
{
pipe?.Writer.Complete();
pipe?.Reader.Complete();
callback = null;
userToken = null;
cancellationTokenSource?.Cancel();
pipe = null;
bufferCache.Clear(true);
try
{
pipe?.Writer.Complete();
pipe?.Reader.Complete();
}
catch (Exception)
{
}
pipe = null;
}
public override void Disponse()
{
@@ -467,6 +467,7 @@ namespace cmonitor.server
TargetStream?.ShutdownAsync();
TargetStream?.Dispose();
}
}
catch (Exception)
{