【发布时间】:2015-09-16 02:37:02
【问题描述】:
根据this discussion about XMPP in-order delivery,XMPP 规范保证消息将按接收顺序处理,但不一定按接收顺序传递。
即使它们未按接收顺序发送,XMPP(正常聊天或通过 pub-sub 扩展程序)是否保证所有连接的客户端都将以一致的顺序接收消息?
例如如果发送了三个消息A, B, C,并且客户端C1 接收到<message> 节的顺序为A, C, B,那么客户端C2 是否也会接收到顺序为A, C, B 的节?
我在标准中看不到任何可以保证这一点的东西。它不存在,是否有任何实现(如 eJabberd)提供此作为其架构的副作用?
【问题讨论】:
-
ejabberd 应符合此订单要求。然而,我们处理 IQ 回复的方式很灵活。处理是按顺序进行的,但出于性能原因,我们不会将它们排队以按顺序传递结果。由于您有一个 ID,客户端可以将回复与 IQ 匹配或以同步方式发送 IQ。
标签: xmpp