Minor WS disconnect logic changes

This commit is contained in:
RogueException
2015-12-31 15:51:28 -04:00
parent 8391d57f83
commit ebd1d77ccf

View File

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