websocket客户端可能会断开连接以一次接收多个包?

Posted

技术标签:

【中文标题】websocket客户端可能会断开连接以一次接收多个包?【英文标题】:It is possible that websocket client disconnect for receive to many packs at once? 【发布时间】:2014-11-07 17:52:12 【问题描述】:

我正在使用 WebSockets 进行视频聊天,但遇到了奇怪的问题。

当只使用聊天(短信)时,一切正常,而不是当我开始播放视频时,再次发送和接收一切正常,但是当在传输视频时发送短信时,文本的接收器有时会自行断开.完全随机,有时在 3 条消息之后,有时在 10 条消息之后,与文本的大小无关,1 或 20 个字符。

websocket.onerror function(msg) msg.data 

返回未定义,console.dir(msg) 返回'WebSocket connection to 'ws://127.0.0.1:9000/'失败:Could not decode a text frame as UTF-8.', but how couldn't decode a text that i already had sended lots of times?

我唯一的想法是服务器发送数据包的速度可能比浏览器处理的速度快。因为我在本地运行,所以速度最快。

有任何想法或面临同样的问题吗? 我红了很多,但没有解决方案。

【问题讨论】:

【参考方案1】:

没问题,问题是服务器或客户端是否在有另一条消息正在传输时尝试发送一条消息。例如,如果服务器发送部分文本帧,并尝试发送视频的二进制帧,浏览器将显示该错误,因为将尝试将视频帧作为文本读取。只有控制帧可以在消息帧之间交错。其余消息必须一个接一个地发送。

【讨论】:

感谢您的回复。除了在我发送文本时阻止视频传输之外,您知道我该如何管理吗?那会有点滞后...... 您可以发送不同的消息类型,只要它们是完整的消息。我不知道你是怎么发送视频数据的……但我给你一个猜测……因为视频数据时间比聊天时间更重要,所以我要做的就是将短信排队,每次你完成发送视频消息,检查聊天队列中的消息,并发送可用的(或前 10 条),然后继续发送视频消息。或者,打开两个不同的连接。 是的!第二对连接成功了!当我发送文本时,视频会停止一点,但不是问题,我可以发送任意数量的包裹,不再有连接问题。谢谢 vtortola!

以上是关于websocket客户端可能会断开连接以一次接收多个包?的主要内容,如果未能解决你的问题,请参考以下文章

XMPP 流发送,不接收。为啥 XMPP 流可能会断开连接?

2018-03-26(websocket自动断开连接)

维护websocket长链接的稳定

nodejs socket 怎么检测客户端主动断开连接

怎样判定socket连接已经关闭

c调用 socket 如果客户端连接断开,怎么判断? 还有怎么向多个 连接在一个服务器上的多个客户