Socket.io保证广播事件是为了客户端而收到的吗?

Socket.io中是否有某种订购机制,规定客户按顺序接收事件。 例如:如果服务器向客户端A发送事件Evt1,则服务器向所有客户端广播Evt2。 Thud客户端A接收Evt1,然后Evt2并且只按照这个顺序。 我有点懒惰阅读代码,并不能在网上find我的答案。 我的猜测是否定的,如果是这种情况,你将如何实施它,或者是否有现有的解决scheme?

不,如果您需要这样做,您必须在应用程序级别执行此操作。 互联网不保证两个不同的数据包将采取相同的路线,所以时间可能会有所不同。 也许添加一个时间戳到每个消息,所以你可以按时间戳sorting,以保持秩序。

既然以前的答案可能会有误导性,我认为澄清一件事是很重要的:

当使用带有WebSocket的Socket.io时,数据包的顺序是保证的。

这是一个旧的post,但值得注意的是,通过WebSockets的 Socket.io 确实确保事件顺序得到维护。 这是因为TCP本身是WebSockets&HTTP的底层技术,可以保证数据包的sorting。 但是,Socket.io也支持其他一些不保证顺序的协议。

有几个关于这个问题的发布的问题,支持这个事实: