| @@ -374,8 +374,6 @@ namespace Discord | |||||
| _webSocket.Connected += (s, e) => RaiseConnected(); | _webSocket.Connected += (s, e) => RaiseConnected(); | ||||
| _webSocket.Disconnected += async (s, e) => | _webSocket.Disconnected += async (s, e) => | ||||
| { | { | ||||
| if (_config.EnableDebug) | |||||
| RaiseOnDebugMessage(DebugMessageType.Connection, $"DataSocket disconnected."); | |||||
| RaiseDisconnected(); | RaiseDisconnected(); | ||||
| //Reconnect if we didn't cause the disconnect | //Reconnect if we didn't cause the disconnect | ||||
| @@ -385,14 +383,8 @@ namespace Discord | |||||
| { | { | ||||
| await Task.Delay(_config.ReconnectDelay); | await Task.Delay(_config.ReconnectDelay); | ||||
| await _webSocket.ReconnectAsync(); | await _webSocket.ReconnectAsync(); | ||||
| if (_config.EnableDebug) | |||||
| RaiseOnDebugMessage(DebugMessageType.Connection, $"DataSocket connected."); | |||||
| if (_http.Token != null) | if (_http.Token != null) | ||||
| { | |||||
| await _webSocket.Login(_http.Token); | await _webSocket.Login(_http.Token); | ||||
| if (_config.EnableDebug) | |||||
| RaiseOnDebugMessage(DebugMessageType.Connection, $"DataSocket logged in."); | |||||
| } | |||||
| break; | break; | ||||
| } | } | ||||
| catch (Exception ex) | catch (Exception ex) | ||||
| @@ -404,7 +396,7 @@ namespace Discord | |||||
| } | } | ||||
| }; | }; | ||||
| if (_config.EnableDebug) | if (_config.EnableDebug) | ||||
| _webSocket.OnDebugMessage += (s, e) => RaiseOnDebugMessage(e.Type, e.Message); | |||||
| _voiceWebSocket.OnDebugMessage += (s, e) => RaiseOnDebugMessage(e.Type, $"DataSocket: {e.Message}"); | |||||
| #if !DNXCORE50 | #if !DNXCORE50 | ||||
| if (_config.EnableVoice) | if (_config.EnableVoice) | ||||
| @@ -413,8 +405,6 @@ namespace Discord | |||||
| _voiceWebSocket.Connected += (s, e) => RaiseVoiceConnected(); | _voiceWebSocket.Connected += (s, e) => RaiseVoiceConnected(); | ||||
| _voiceWebSocket.Disconnected += async (s, e) => | _voiceWebSocket.Disconnected += async (s, e) => | ||||
| { | { | ||||
| if (_config.EnableDebug) | |||||
| RaiseOnDebugMessage(DebugMessageType.Connection, $"VoiceSocket disconnected."); | |||||
| RaiseVoiceDisconnected(); | RaiseVoiceDisconnected(); | ||||
| //Reconnect if we didn't cause the disconnect | //Reconnect if we didn't cause the disconnect | ||||
| @@ -423,8 +413,6 @@ namespace Discord | |||||
| try | try | ||||
| { | { | ||||
| await Task.Delay(_config.ReconnectDelay); | await Task.Delay(_config.ReconnectDelay); | ||||
| if (_config.EnableDebug) | |||||
| RaiseOnDebugMessage(DebugMessageType.Connection, $"VoiceSocket connected."); | |||||
| await _voiceWebSocket.ReconnectAsync(); | await _voiceWebSocket.ReconnectAsync(); | ||||
| break; | break; | ||||
| } | } | ||||
| @@ -438,7 +426,7 @@ namespace Discord | |||||
| } | } | ||||
| }; | }; | ||||
| if (_config.EnableDebug) | if (_config.EnableDebug) | ||||
| _voiceWebSocket.OnDebugMessage += (s, e) => RaiseOnDebugMessage(e.Type, e.Message); | |||||
| _voiceWebSocket.OnDebugMessage += (s, e) => RaiseOnDebugMessage(e.Type, $"VoiceSocket: {e.Message}"); | |||||
| } | } | ||||
| #endif | #endif | ||||
| @@ -46,6 +46,9 @@ namespace Discord | |||||
| } | } | ||||
| try { _connectWaitOnLogin2.Wait(cancelToken); } //Waiting on READY handler | try { _connectWaitOnLogin2.Wait(cancelToken); } //Waiting on READY handler | ||||
| catch (OperationCanceledException) { return; } | catch (OperationCanceledException) { return; } | ||||
| if (_isDebug) | |||||
| RaiseOnDebugMessage(DebugMessageType.Connection, $"Logged in."); | |||||
| SetConnected(); | SetConnected(); | ||||
| } | } | ||||
| @@ -72,7 +75,7 @@ namespace Discord | |||||
| break; | break; | ||||
| default: | default: | ||||
| if (_isDebug) | if (_isDebug) | ||||
| RaiseOnDebugMessage(DebugMessageType.WebSocketUnknownOpCode, "Unknown DataSocket op: " + msg.Operation); | |||||
| RaiseOnDebugMessage(DebugMessageType.WebSocketUnknownOpCode, "Unknown Opcode: " + msg.Operation); | |||||
| break; | break; | ||||
| } | } | ||||
| #if DNXCORE | #if DNXCORE | ||||
| @@ -288,7 +288,7 @@ namespace Discord | |||||
| #endif | #endif | ||||
| default: | default: | ||||
| if (_isDebug) | if (_isDebug) | ||||
| RaiseOnDebugMessage(DebugMessageType.WebSocketUnknownOpCode, "Unknown VoiceSocket op: " + msg.Operation); | |||||
| RaiseOnDebugMessage(DebugMessageType.WebSocketUnknownOpCode, "Unknown Opcode: " + msg.Operation); | |||||
| break; | break; | ||||
| } | } | ||||
| #if DNXCORE50 | #if DNXCORE50 | ||||
| @@ -306,7 +306,11 @@ namespace Discord | |||||
| { | { | ||||
| _isReady = true; | _isReady = true; | ||||
| if (length != 70) | if (length != 70) | ||||
| throw new Exception($"Unexpected message length. Expected 70, got {length}."); | |||||
| { | |||||
| if (_isDebug) | |||||
| RaiseOnDebugMessage(DebugMessageType.VoiceInput, $"Unexpected message length. Expected >= 70, got {length}."); | |||||
| return; | |||||
| } | |||||
| int port = buffer[68] | buffer[69] << 8; | int port = buffer[68] | buffer[69] << 8; | ||||
| @@ -48,11 +48,17 @@ namespace Discord | |||||
| await _webSocket.ConnectAsync(new Uri(url), cancelToken); | await _webSocket.ConnectAsync(new Uri(url), cancelToken); | ||||
| _host = url; | _host = url; | ||||
| if (_isDebug) | |||||
| RaiseOnDebugMessage(DebugMessageType.Connection, $"Connected."); | |||||
| OnConnect(); | OnConnect(); | ||||
| _lastHeartbeat = DateTime.UtcNow; | _lastHeartbeat = DateTime.UtcNow; | ||||
| _tasks = Task.Factory.ContinueWhenAll(CreateTasks(), x => | _tasks = Task.Factory.ContinueWhenAll(CreateTasks(), x => | ||||
| { | { | ||||
| if (_isDebug) | |||||
| RaiseOnDebugMessage(DebugMessageType.Connection, $"Disconnected."); | |||||
| //Do not clean up until all tasks have ended | //Do not clean up until all tasks have ended | ||||
| OnDisconnect(); | OnDisconnect(); | ||||
| @@ -125,7 +131,8 @@ namespace Discord | |||||
| if (result.MessageType == WebSocketMessageType.Close) | if (result.MessageType == WebSocketMessageType.Close) | ||||
| { | { | ||||
| await _webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None); | await _webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None); | ||||
| return; | |||||
| RaiseOnDebugMessage(DebugMessageType.Connection, $"Got Close Message ({result.CloseStatus?.ToString() ?? "Unexpected"}, {result.CloseStatusDescription ?? "No Reason"})"); | |||||
| return; | |||||
| } | } | ||||
| else | else | ||||
| builder.Append(Encoding.UTF8.GetString(buffer, 0, result.Count)); | builder.Append(Encoding.UTF8.GetString(buffer, 0, result.Count)); | ||||