1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-12-17 20:32:25 +00:00

Update CryptoExchangeWebSocketClient.cs

This commit is contained in:
JKorf 2025-12-14 20:27:52 +01:00
parent b49300ec1d
commit 8720130990

View File

@ -450,10 +450,12 @@ namespace CryptoExchange.Net.Sockets.Default
try try
{ {
if (_socket.State == WebSocketState.CloseReceived) if (_socket.State == WebSocketState.CloseReceived)
await _socket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "Closing", default).ConfigureAwait(false);
else if (_socket.State == WebSocketState.Open)
{ {
await _socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Closing", default).ConfigureAwait(false); await _socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Closing", default).ConfigureAwait(false);
}
else if (_socket.State == WebSocketState.Open)
{
await _socket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "Closing", default).ConfigureAwait(false);
var startWait = DateTime.UtcNow; var startWait = DateTime.UtcNow;
while (_socket.State != WebSocketState.Closed && _socket.State != WebSocketState.Aborted) while (_socket.State != WebSocketState.Closed && _socket.State != WebSocketState.Aborted)
{ {
@ -819,6 +821,7 @@ namespace CryptoExchange.Net.Sockets.Default
// Received a complete message and it's not multi part // Received a complete message and it's not multi part
if (_logger.IsEnabled(LogLevel.Trace)) if (_logger.IsEnabled(LogLevel.Trace))
_logger.SocketReceivedSingleMessage(Id, receiveResult.Count); _logger.SocketReceivedSingleMessage(Id, receiveResult.Count);
ProcessDataNew(receiveResult.MessageType, buffer.Span.Slice(0, receiveResult.Count)); ProcessDataNew(receiveResult.MessageType, buffer.Span.Slice(0, receiveResult.Count));
} }
else else
@ -826,6 +829,7 @@ namespace CryptoExchange.Net.Sockets.Default
// Received the end of a multipart message, write to memory stream for reassembling // Received the end of a multipart message, write to memory stream for reassembling
if (_logger.IsEnabled(LogLevel.Trace)) if (_logger.IsEnabled(LogLevel.Trace))
_logger.SocketReceivedPartialMessage(Id, receiveResult.Count); _logger.SocketReceivedPartialMessage(Id, receiveResult.Count);
multipartStream!.Write(buffer.Span.Slice(0, receiveResult.Count)); multipartStream!.Write(buffer.Span.Slice(0, receiveResult.Count));
} }