【发布时间】:2012-05-21 05:02:59
【问题描述】:
我试图了解 AMQP 和 XMPP 之间的区别,除此之外,我真的不明白 XMPP 是否像它有队列那样工作。 当您向各种客户端发送消息时,如果其中一个客户端出现故障,会发生什么情况?服务器将消息排队等待客户端再次启动或它是如何工作的?
谢谢
【问题讨论】:
我试图了解 AMQP 和 XMPP 之间的区别,除此之外,我真的不明白 XMPP 是否像它有队列那样工作。 当您向各种客户端发送消息时,如果其中一个客户端出现故障,会发生什么情况?服务器将消息排队等待客户端再次启动或它是如何工作的?
谢谢
【问题讨论】:
当 JID 离线时,如何处理消息和 iq 取决于 XMPP 服务器实现。 Section 11.1 of RFC 3921:
否则,如果 JID 是格式并且没有 与用户相关联的可用资源,节是怎样的 处理取决于节类型:
...
对于消息节,服务器可以选择将节存储在 代表用户并在用户下次成为 可用,或通过其他方式将消息转发给用户 (例如,发送到用户的电子邮件帐户)。但是,如果离线消息 未启用存储或消息转发,服务器必须返回 给发件人一个节错误。 (注:离线 XMPP 中没有定义消息存储和消息转发,因为 它们是严格执行和服务的问题 供应。)
对于 IQ 节,服务器本身必须代表用户回复 IQ 结果或 IQ 错误。具体来说,如果 限定名称空间的语义定义了服务器的回复 可以提供,服务器必须代表 用户;如果不是,服务器必须回复 节错误。
【讨论】: