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