【问题标题】:Does the XMPP protocol guarantee delivery in a consistent order ("in-order delivery")?XMPP 协议是否保证以一致的顺序交付(“按顺序交付”)?
【发布时间】: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


【解决方案1】:

链接的帖子很旧。 XMPP 确实保证了节的有序处理和交付。见RFC 6120 10.1。请注意,如果 XMPP 实现确实遵守并实现了这个要求,那就另当别论了。

您示例中的节必须按照发送顺序接收,即ABC

【讨论】:

    猜你喜欢
    • 2014-09-19
    • 2013-06-28
    • 2013-06-17
    • 1970-01-01
    • 2021-03-30
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多