Browse Source

Minor WS disconnect logic changes

tags/docs-0.9
RogueException 9 years ago
parent
commit
ebd1d77ccf
1 changed files with 23 additions and 14 deletions
  1. +23
    -14
      src/Discord.Net/Net/WebSockets/WS4NetEngine.cs

+ 23
- 14
src/Discord.Net/Net/WebSockets/WS4NetEngine.cs View File

@@ -36,21 +36,30 @@ namespace Discord.Net.WebSockets

public Task Connect(string host, CancellationToken cancelToken)
{
_webSocket = new WebSocketClient(host);
_webSocket.EnableAutoSendPing = false;
_webSocket.NoDelay = true;
_webSocket.Proxy = null;
try
{
_webSocket = new WebSocketClient(host);
_webSocket.EnableAutoSendPing = false;
_webSocket.NoDelay = true;
_webSocket.Proxy = null;

_webSocket.DataReceived += OnWebSocketBinary;
_webSocket.MessageReceived += OnWebSocketText;
_webSocket.Error += OnWebSocketError;
_webSocket.Closed += OnWebSocketClosed;
_webSocket.Opened += OnWebSocketOpened;
_webSocket.DataReceived += OnWebSocketBinary;
_webSocket.MessageReceived += OnWebSocketText;
_webSocket.Error += OnWebSocketError;
_webSocket.Closed += OnWebSocketClosed;
_webSocket.Opened += OnWebSocketOpened;

_waitUntilConnect.Reset();
_webSocket.Open();
_waitUntilConnect.Wait(cancelToken);
_taskManager.ThrowException(); //In case our connection failed
_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);


Loading…
Cancel
Save