2012-05-13 99 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中沒有端到端的交付保證。它打算在兩階段提交確認的情況下以每一跳仔細安全存儲爲代價來縮短延遲時間。 –