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