java - 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# 客户端中的发送方式。
任何想法将不胜感激。
解决方案
推荐阅读
- glsl - webgl错误中的高斯模糊
- catel - 使用 Fody 自动绑定到 Catel 中的某些服务属性
- java - 服务器套接字不在 Java 中发回数据
- swift - Swift 中的 Skscene 过渡
- ruby - 在 Ruby 中每小时执行一定数量的请求?
- c# - 正则表达式 c# 与 https://regex101.com/ 给出的结果不同
- string - 以pythonic方式获取字符串末尾的数字
- node.js - 可以在 CURL 中获取网站,但不能在 Nodejs 请求中获取
- python - OSError: [Errno 0] httplib2 请求中的错误
- php - Laravel 关系 - whereHas on hasMany