1
0
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:
JKorf 2019-01-17 14:52:28 +01:00
parent 4cc5692328
commit 7020b5cb14
2 changed files with 30 additions and 22 deletions

View File

@ -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>

View File

@ -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