【问题标题】:How does the persistence work in XMPP?持久性在 XMPP 中是如何工作的?
【发布时间】:2012-05-21 05:02:59
【问题描述】:

我试图了解 AMQP 和 XMPP 之间的区别,除此之外,我真的不明白 XMPP 是否像它有队列那样工作。 当您向各种客户端发送消息时,如果其中一个客户端出现故障,会发生什么情况?服务器将消息排队等待客户端再次启动或它是如何工作的?

谢谢

【问题讨论】:

    标签: xmpp amqp


    【解决方案1】:

    当 JID 离线时,如何处理消息和 iq 取决于 XMPP 服务器实现。 Section 11.1 of RFC 3921:

    否则,如果 JID 是格式并且没有 与用户相关联的可用资源,节是怎样的 处理取决于节类型:

    ...

    对于消息节,服务器可以选择将节存储在 代表用户并在用户下次成为 可用,或通过其他方式将消息转发给用户 (例如,发送到用户的电子邮件帐户)。但是,如果离线消息 未启用存储或消息转发,服务器必须返回 给发件人一个节错误。 (注:离线 XMPP 中没有定义消息存储和消息转发,因为 它们是严格执行和服务的问题 供应。)

    对于 IQ 节,服务器本身必须代表用户回复 IQ 结果或 IQ 错误。具体来说,如果 限定名称空间的语义定义了服务器的回复 可以提供,服务器必须代表 用户;如果不是,服务器必须回复 节错误。

    【讨论】:

    • 谢谢!。所以它可以非常类似于QUEUE系统。很难看出区别
    • 请记住,XMPP 中没有端到端的交付保证。它旨在缩短延迟,但代价是使用两阶段提交确认在每一跳处仔细安全存储。
    猜你喜欢
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 2010-10-30
    相关资源
    最近更新 更多