Socket.io中是否有某种订购机制可以保证客户按顺序接收事件。 例如:如果服务器向客户端A发出事件Evt1,则服务器将Evt2广播到所有客户端。 thud客户端A接收Evt1然后接收Evt2并且只接受该顺序。 我有点懒,读代码,在网上找不到我的答案。 我的猜测是否定的,如果是这样的话,你会如何实现它?或者是否有现有的解决方案?
答案 0 :(得分:19)
由于以前的答案可能会产生误导,我认为澄清一件事很重要:
这是一篇旧帖子,但值得注意的是,Socket.io通过 WebSockets 实际上保证事件排序得以维持。这是因为TCP本身,它是WebSockets& Sons的底层技术。 HTTP保证保持数据包排序。但是,Socket.io还支持其他几种不保证顺序的协议。
有关此问题的几个问题,支持这一事实:
答案 1 :(得分:0)
不,如果您需要,您必须在应用程序级别执行此操作。互联网并不能保证两个不同的数据包采用相同的路由,因此时间可能会有所不同。也许为每条消息添加一个时间戳,这样你就可以按时间戳排序,以保持秩序井然。