首页 > 解决方案 > C# WebSocket SendAsync 异常

问题描述

我使用 WebSocketClient 执行网络核心应用程序以与 Java Springboot websocketserver 通信。我从 C# 通过 websocket 发送超过 20000 条消息:

await client.SendAsync(new ArraySegment<byte>(bytes), WebSocketMessageType.Text, true, _cancellationToken);

但是,有时,某些消息会给出下一个例外:

The Specified argument was out of the range of valid values

堆栈跟踪:

at System.Net.WebSOckets.ManagedWebSocket.<SendFrameFallbackAsync>d_61.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at MyWebSocket.ClientHandler.<SendMessage>d_8.MoveNext() in C:\MyProjects\MyWebSocket\ClientHandler.cs:line 71

该行对应于上面放置的 Send async。

我已经尝试增加 java 项目的 TextMessage 缓冲区大小,但无论字节大小如何,异常都会不断发生。它不会发生在所有消息中,只有其中一些消息。这不会阻止 java springboot 继续接收消息并处理它们,所以我认为问题在于消息在 C# 客户端中的发送方式。

任何想法将不胜感激。

标签: javac#spring-boot.net-corewebsocket

解决方案


推荐阅读