fix: catch json exceptions and log them
This commit is contained in:
@@ -175,22 +175,31 @@ internal sealed class DiscordGatewayClient : IDiscordGatewayClient
|
|||||||
if (result.MessageType is WebSocketMessageType.Text)
|
if (result.MessageType is WebSocketMessageType.Text)
|
||||||
{
|
{
|
||||||
await memoryStream.WriteAsync(messageBuffer.AsMemory(0, result.Count), _linkedReceiveMessageCts.Token);
|
await memoryStream.WriteAsync(messageBuffer.AsMemory(0, result.Count), _linkedReceiveMessageCts.Token);
|
||||||
await memoryStream.FlushAsync(_linkedReceiveMessageCts.Token);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (result.EndOfMessage is false);
|
} while (result.EndOfMessage is false);
|
||||||
|
|
||||||
|
await memoryStream.FlushAsync(_linkedReceiveMessageCts.Token);
|
||||||
|
|
||||||
memoryStream.Seek(0, SeekOrigin.Begin);
|
memoryStream.Seek(0, SeekOrigin.Begin);
|
||||||
|
|
||||||
var msg = Encoding.UTF8.GetString(messageBuffer, 0, result.Count);
|
var msg = Encoding.UTF8.GetString(messageBuffer, 0, result.Count);
|
||||||
|
|
||||||
_logger.LogDebug("Received message: {Message}", msg);
|
DiscordEvent? e = null;
|
||||||
|
|
||||||
var e = await JsonSerializer.DeserializeAsync<DiscordEvent>(
|
try
|
||||||
|
{
|
||||||
|
e = await JsonSerializer.DeserializeAsync<DiscordEvent>(
|
||||||
memoryStream,
|
memoryStream,
|
||||||
_jsonSerializerOptions,
|
_jsonSerializerOptions,
|
||||||
_linkedReceiveMessageCts.Token
|
_linkedReceiveMessageCts.Token
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
catch (JsonException ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Failed to deserialize message: {Message}", msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (e is null)
|
if (e is null)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user