如何确保消息使用 WebSockets 到达目的地?

Posted

技术标签:

【中文标题】如何确保消息使用 WebSockets 到达目的地?【英文标题】:How do I make sure a message gets to its destination using WebSockets? 【发布时间】:2010-12-25 02:01:56 【问题描述】:

我仍在尝试找出 WebSockets。 我将来自 javascript 客户端的数据作为 JSON 字符串发送到 python 服务器,但它们到达时是零散的。

如何确保在开始解析之前收到完整的消息?

【问题讨论】:

【参考方案1】:

您需要阅读一般的套接字编程。

从 websocket 读取一些数据并不意味着你已经收到了对方想要发送的所有内容。

理想情况下,您应该在消息前面加上一个包含有效负载大小的标头。然后,在您读取标头(例如,以 LF 终止,或固定为 4 个字节等)后,您可以准确计算出要读取多少字节才能获得完整消息。

之后您阅读的任何内容都会成为您的下一个标题。等等。

【讨论】:

您可以通过发送类似以下内容来简化此概念:26:abcdefghijklmnopqrstuvwxyz .. 然后您就知道在 26 个字符(或字节或您希望使用的任何内容)之后,消息结束,另一个开始。

以上是关于如何确保消息使用 WebSockets 到达目的地?的主要内容,如果未能解决你的问题,请参考以下文章

websocket 消息总是会一次全部到达吗?

springboot-集成WebSockets广播消息

如何使用 websockets 通过 Flask 向特定用户发送消息?

JMS消息使用RDD来确保仅用于确认目的的安全性

2023春招面试:消息中间件面试题整理

2023春招面试:消息中间件面试题整理