1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-08 16:36:15 +00:00

Added reset to base socket to create a new socket when trying to reconnect

This commit is contained in:
JKorf 2018-12-17 11:08:03 +01:00
parent d7600b5495
commit 56da39b595
4 changed files with 13 additions and 0 deletions

View File

@ -58,6 +58,10 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations
throw new Exception("Socket not connected"); throw new Exception("Socket not connected");
} }
public void Reset()
{
}
public Task Close() public Task Close()
{ {
Connected = false; Connected = false;

View File

@ -26,6 +26,7 @@ namespace CryptoExchange.Net.Interfaces
TimeSpan Timeout { get; set; } TimeSpan Timeout { get; set; }
Task<bool> Connect(); Task<bool> Connect();
void Send(string data); void Send(string data);
void Reset();
Task Close(); Task Close();
void SetProxy(string host, int port); void SetProxy(string host, int port);
} }

View File

@ -173,6 +173,8 @@ namespace CryptoExchange.Net
Task.Run(() => Task.Run(() =>
{ {
Thread.Sleep(ReconnectInterval); Thread.Sleep(ReconnectInterval);
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");

View File

@ -163,6 +163,12 @@ namespace CryptoExchange.Net.Sockets
}).ConfigureAwait(false); }).ConfigureAwait(false);
} }
public virtual void Reset()
{
socket.Dispose();
socket = null;
}
public virtual void Send(string data) public virtual void Send(string data)
{ {
socket.Send(data); socket.Send(data);