Minor WS disconnect logic changes
This commit is contained in:
@@ -35,6 +35,8 @@ namespace Discord.Net.WebSockets
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Task Connect(string host, CancellationToken cancelToken)
|
public Task Connect(string host, CancellationToken cancelToken)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
_webSocket = new WebSocketClient(host);
|
_webSocket = new WebSocketClient(host);
|
||||||
_webSocket.EnableAutoSendPing = false;
|
_webSocket.EnableAutoSendPing = false;
|
||||||
@@ -48,9 +50,16 @@ namespace Discord.Net.WebSockets
|
|||||||
_webSocket.Opened += OnWebSocketOpened;
|
_webSocket.Opened += OnWebSocketOpened;
|
||||||
|
|
||||||
_waitUntilConnect.Reset();
|
_waitUntilConnect.Reset();
|
||||||
|
_waitUntilDisconnect.Reset();
|
||||||
_webSocket.Open();
|
_webSocket.Open();
|
||||||
_waitUntilConnect.Wait(cancelToken);
|
_waitUntilConnect.Wait(cancelToken);
|
||||||
_taskManager.ThrowException(); //In case our connection failed
|
_taskManager.ThrowException(); //In case our connection failed
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
_waitUntilDisconnect.Set();
|
||||||
|
throw;
|
||||||
|
}
|
||||||
return TaskHelper.CompletedTask;
|
return TaskHelper.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,8 +105,8 @@ namespace Discord.Net.WebSockets
|
|||||||
}
|
}
|
||||||
private void OnWebSocketOpened(object sender, EventArgs e)
|
private void OnWebSocketOpened(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_waitUntilDisconnect.Reset();
|
|
||||||
_waitUntilConnect.Set();
|
_waitUntilConnect.Set();
|
||||||
|
_waitUntilDisconnect.Reset();
|
||||||
}
|
}
|
||||||
private void OnWebSocketText(object sender, MessageReceivedEventArgs e)
|
private void OnWebSocketText(object sender, MessageReceivedEventArgs e)
|
||||||
=> OnTextMessage(e.Message);
|
=> OnTextMessage(e.Message);
|
||||||
|
|||||||
Reference in New Issue
Block a user