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)
|
||||
{
|
||||
try
|
||||
{
|
||||
_webSocket = new WebSocketClient(host);
|
||||
_webSocket.EnableAutoSendPing = false;
|
||||
@@ -48,9 +50,16 @@ namespace Discord.Net.WebSockets
|
||||
_webSocket.Opened += OnWebSocketOpened;
|
||||
|
||||
_waitUntilConnect.Reset();
|
||||
_waitUntilDisconnect.Reset();
|
||||
_webSocket.Open();
|
||||
_waitUntilConnect.Wait(cancelToken);
|
||||
_taskManager.ThrowException(); //In case our connection failed
|
||||
}
|
||||
catch
|
||||
{
|
||||
_waitUntilDisconnect.Set();
|
||||
throw;
|
||||
}
|
||||
return TaskHelper.CompletedTask;
|
||||
}
|
||||
|
||||
@@ -96,8 +105,8 @@ namespace Discord.Net.WebSockets
|
||||
}
|
||||
private void OnWebSocketOpened(object sender, EventArgs e)
|
||||
{
|
||||
_waitUntilDisconnect.Reset();
|
||||
_waitUntilConnect.Set();
|
||||
_waitUntilDisconnect.Reset();
|
||||
}
|
||||
private void OnWebSocketText(object sender, MessageReceivedEventArgs e)
|
||||
=> OnTextMessage(e.Message);
|
||||
|
||||
Reference in New Issue
Block a user