1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-26 17:26:24 +00:00
This commit is contained in:
Jkorf 2025-06-16 15:42:51 +02:00
parent 66fb104983
commit 7cc0f8a67d
3 changed files with 22 additions and 2 deletions

View File

@ -348,6 +348,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
{
_stream?.Dispose();
_stream = null;
_intermediateType = default;
}
}
@ -464,7 +465,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
{
// Not a json message
IsValid = false;
return new CallResult(new DeserializeError("JsonError: " + ex.Message, ex));
return new CallResult(new DeserializeError("ProtobufError: " + ex.Message, ex));
}
}
@ -484,6 +485,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
public override void Clear()
{
_bytes = null;
_intermediateType = default;
}
}
}

View File

@ -15,6 +15,7 @@ namespace CryptoExchange.Net.Logging.Extensions
private static readonly Action<ILogger, int, string?, Exception?> _webSocketError;
private static readonly Action<ILogger, int, int, Exception?> _messageSentNotPending;
private static readonly Action<ILogger, int, string, Exception?> _receivedData;
private static readonly Action<ILogger, int, string, Exception?> _failedToParse;
private static readonly Action<ILogger, int, string, Exception?> _failedToEvaluateMessage;
private static readonly Action<ILogger, int, Exception?> _errorProcessingMessage;
private static readonly Action<ILogger, int, int, string, Exception?> _processorMatched;
@ -189,6 +190,11 @@ namespace CryptoExchange.Net.Logging.Extensions
LogLevel.Warning,
new EventId(2029, "ReceivedMessageNotMatchedToAnyListener"),
"[Sckt {SocketId}] received message not matched to any listener. ListenId: {ListenId}, current listeners: {ListenIds}");
_failedToParse = LoggerMessage.Define<int, string>(
LogLevel.Warning,
new EventId(2030, "FailedToParse"),
"[Sckt {SocketId}] failed to parse data: {Error}");
}
public static void ActivityPaused(this ILogger logger, int socketId, bool paused)
@ -230,6 +236,12 @@ namespace CryptoExchange.Net.Logging.Extensions
{
_receivedData(logger, socketId, originalData, null);
}
public static void FailedToParse(this ILogger logger, int socketId, string error)
{
_failedToParse(logger, socketId, error, null);
}
public static void FailedToEvaluateMessage(this ILogger logger, int socketId, string originalData)
{
_failedToEvaluateMessage(logger, socketId, originalData, null);

View File

@ -465,7 +465,7 @@ namespace CryptoExchange.Net.Sockets
else
accessor = _byteMessageAccessor ??= ApiClient.CreateAccessor(type);
accessor.Read(data);
var result = accessor.Read(data);
try
{
bool outputOriginalData = ApiClient.ApiOptions.OutputOriginalData ?? ApiClient.ClientOptions.OutputOriginalData;
@ -475,6 +475,12 @@ namespace CryptoExchange.Net.Sockets
_logger.ReceivedData(SocketId, originalData);
}
if (!accessor.IsValid)
{
_logger.FailedToParse(SocketId, result.Error!.Message);
return;
}
// 3. Determine the identifying properties of this message
var listenId = ApiClient.GetListenerIdentifier(accessor);
if (listenId == null)