diff --git a/CryptoExchange.Net/Clients/SocketApiClient.cs b/CryptoExchange.Net/Clients/SocketApiClient.cs index b2ef32e..4dfddcf 100644 --- a/CryptoExchange.Net/Clients/SocketApiClient.cs +++ b/CryptoExchange.Net/Clients/SocketApiClient.cs @@ -802,7 +802,6 @@ namespace CryptoExchange.Net.Clients return new CallResult>(socketConnection); } - /// /// Process an unhandled message /// @@ -811,6 +810,14 @@ namespace CryptoExchange.Net.Clients { } + /// + /// Process an unhandled message + /// + /// The socket connection + /// The type as identified + /// The data + protected internal virtual bool HandleUnhandledMessage(SocketConnection connection, string typeIdentifier, ReadOnlySpan data) => false; + /// /// Process connect rate limited /// diff --git a/CryptoExchange.Net/Sockets/Default/SocketConnection.cs b/CryptoExchange.Net/Sockets/Default/SocketConnection.cs index 6c3bd49..98178e7 100644 --- a/CryptoExchange.Net/Sockets/Default/SocketConnection.cs +++ b/CryptoExchange.Net/Sockets/Default/SocketConnection.cs @@ -571,8 +571,12 @@ namespace CryptoExchange.Net.Sockets.Default if (deserializationType == null) { - // No handler found for identifier either, can't process - _logger.LogWarning("Failed to determine message type for identifier {Identifier}. Data: {Message}", typeIdentifier, Encoding.UTF8.GetString(data.ToArray())); + if (!ApiClient.HandleUnhandledMessage(this, typeIdentifier, data)) + { + // No handler found for identifier either, can't process + _logger.LogWarning("Failed to determine message type for identifier {Identifier}. Data: {Message}", typeIdentifier, Encoding.UTF8.GetString(data.ToArray())); + } + return; }