mirror of
https://github.com/JKorf/CryptoExchange.Net
synced 2025-06-09 00:46:19 +00:00
Fix for reconnecting
This commit is contained in:
parent
4cc5692328
commit
7020b5cb14
@ -7,7 +7,7 @@
|
||||
<PropertyGroup>
|
||||
<PackageId>CryptoExchange.Net</PackageId>
|
||||
<Authors>JKorf</Authors>
|
||||
<PackageVersion>2.0.7</PackageVersion>
|
||||
<PackageVersion>2.0.8</PackageVersion>
|
||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||
<PackageProjectUrl>https://github.com/JKorf/CryptoExchange.Net</PackageProjectUrl>
|
||||
<PackageLicenseUrl>https://github.com/JKorf/CryptoExchange.Net/blob/master/LICENSE</PackageLicenseUrl>
|
||||
|
@ -174,21 +174,21 @@ namespace CryptoExchange.Net
|
||||
|
||||
socket.Reconnecting = true;
|
||||
|
||||
log.Write(LogVerbosity.Info, $"Socket {socket.Id} Connection lost, will try to reconnect");
|
||||
log.Write(LogVerbosity.Info, $"Socket {socket.Id} Connection lost, will try to reconnect after {ReconnectInterval}");
|
||||
Task.Run(() =>
|
||||
{
|
||||
while (socket.ShouldReconnect)
|
||||
{
|
||||
Thread.Sleep(ReconnectInterval);
|
||||
socket.Reset();
|
||||
|
||||
if (!socket.Connect().Result)
|
||||
{
|
||||
log.Write(LogVerbosity.Debug, $"Socket {socket.Id} failed to reconnect");
|
||||
return; // Connect() should result in a SocketClosed event so we end up here again
|
||||
continue;
|
||||
}
|
||||
|
||||
var time = socket.DisconnectTime;
|
||||
socket.DisconnectTime = null;
|
||||
if (time == null)
|
||||
return;
|
||||
|
||||
log.Write(LogVerbosity.Info, $"Socket {socket.Id} reconnected after {DateTime.UtcNow - time}");
|
||||
|
||||
@ -196,11 +196,19 @@ namespace CryptoExchange.Net
|
||||
lock (sockets)
|
||||
subscription = sockets.Single(s => s.Socket == socket);
|
||||
|
||||
socket.Reconnecting = false;
|
||||
if (!SocketReconnect(subscription, DateTime.UtcNow - time.Value))
|
||||
socket.Close().Wait(); // Close so we end up reconnecting again
|
||||
{
|
||||
log.Write(LogVerbosity.Info, $"Socket {socket.Id} failed to resubscribe resubscribed");
|
||||
socket.Close().Wait();
|
||||
}
|
||||
else
|
||||
{
|
||||
log.Write(LogVerbosity.Info, $"Socket {socket.Id} successfully resubscribed");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
socket.Reconnecting = false;
|
||||
});
|
||||
}
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user