2012-05-13 58 views
0

我想了解AMQP和XMPP之间的差异,以及其他一些事情,如果XMPP的工作原理类似于队列,我不太了解。 当您向不同客户发送消息时,如果其中一个发生故障,会发生什么情况?服务器将消息排队到客户端再次运行,或者它如何工作?持久性如何在XMPP中工作?

感谢

回答

2

这取决于XMPP服务器实现了当JID离线消息和IQ的是handeld。 Section 11.1 of RFC 3921

否则,如果JID的形式,并有与用户,该节是如何处理 依赖于节类型相关联的 可用资源:

...

对于消息节,服务器可以选择以代表用户的方式在 上存储节并且当用户下一个变为 时将其传递,或者通过一些其他方式将消息转发给用户 (例如,到用户的电子邮件账户)。但是,如果离线消息 未启用存储或消息转发,则服务器务必返回 给发件人一个节错误。 (注:脱机 消息存储和转发功能的XMPP没有定义,因为 他们是严格实施和服务 供应的问题。)

对于IQ节,服务器本身必须代表用户 的回复无论是IQ结果还是IQ错误。具体而言,如果限定名称空间的语义定义了服务器 可以提供的答复,则服务器必须代表 用户回复该节;如果没有,服务器必须回复一个 节错误。

+0

谢谢!所以它可以和QUEUE系统非常相似。很难看出差异 –

+2

请记住,XMPP中没有端到端的交付保证。它打算在两阶段提交确认的情况下以每一跳仔细安全存储为代价来缩短延迟时间。 –