WebSockets-Sharp 异常:WebSocketException

WebSockets-Sharp Exeption: WebSocketException

我做了一个 xamarin iOS/Android 应用程序。 此应用程序使用 websockets-sharp 与服务器进行通信。

连接后出现以下错误:

03-29 16:11:14.999 I/mono-stdout(19865): 29.03.2018 16:11:14|Fatal|<>c__DisplayClass17.<startReceiving>b__16|WebSocketSharp.WebSocketException: The header of a frame cannot be read from the stream.
29.03.2018 16:11:14|Fatal|<>c__DisplayClass17.<startReceiving>b__16|WebSocketSharp.WebSocketException: The header of a frame cannot be read from the stream.
03-29 16:11:15.005 I/mono-stdout(19865):                             at WebSocketSharp.WebSocketFrame.processHeader (System.Byte[] header) [0x00017] in <38d3cef14c5a4fc9a92de0991034bc1a>:0 
                            at WebSocketSharp.WebSocketFrame.processHeader (System.Byte[] header) [0x00017] in <38d3cef14c5a4fc9a92de0991034bc1a>:0 
                            at WebSocketSharp.WebSocketFrame+<>c__DisplayClassa.<readHeaderAsync>b__9 (System.Byte[] bytes) [0x00000] in <38d3cef14c5a4fc9a92de0991034bc1a>:0 
                            at WebSocketSharp.Ext+<>c__DisplayClass9.<ReadBytesAsync>b__8 (System.IAsyncResult ar) [0x000a2] in <38d3cef14c5a4fc9a92de0991034bc1a>:0 
03-29 16:11:15.005 I/mono-stdout(19865):                             at WebSocketSharp.WebSocketFrame+<>c__DisplayClassa.<readHeaderAsync>b__9 (System.Byte[] bytes) [0x00000] in <38d3cef14c5a4fc9a92de0991034bc1a>:0 
03-29 16:11:15.006 I/mono-stdout(19865):                             at WebSocketSharp.Ext+<>c__DisplayClass9.<ReadBytesAsync>b__8 (System.IAsyncResult ar) [0x000a2] in <38d3cef14c5a4fc9a92de0991034bc1a>:0 
[0:] Socket is disconected...

有没有其他人也遇到这个错误并且知道如何解决这个问题?

导致错误的不是代码,而是您为应用程序编写的算法造成的混乱。 实际错误是"The header of a frame cannot be read from the stream" 这很可能是由于以下问题引起的

您的应用程序和服务器同时以更快的速度向彼此发送大量消息或大量数据。这是明确定义和解释 here

解决方案

您必须优化算法以满足以下限制并消除该错误

  1. 监控数据传输率to/from服务器
  2. 尝试等待一侧(半双工)数据传输完成

抱歉,问题出在我的代码中...

如果您发送的事件在服务器上不存在,则会发生此错误。 只能发送存在的事件,否则发送失败