2012-05-13 12 views
0

私はAMQPとXMPPの違いを理解しようとしていますが、XMPPがキューを持っているかのように動作するかどうかは分かりません。 さまざまなクライアントにメッセージを送信すると、その中の1つがダウンしているとどうなりますか?サーバーはクライアントにメッセージを再度エンキューしますか、それはどのように機能しますか?XMPPで永続性はどのように機能しますか?

おかげ

答えて

2

それはJIDがオフラインのときのメッセージとIQのがhandeld方法XMPPサーバの実装に依存します。 Section 11.1 of RFC 3921

エルス

スタンザの種類に依存スタンザが の処理方法、JIDの形式は、ユーザーに関連付けられ 利用可能なリソースがない場合:

...

メッセージスタンザの場合、サーバーは、ユーザーの代わりに にスタンザを格納し、次にユーザーが になったときに配信するか、または他の手段でメッセージをユーザーに転送することもできます(ユーザーの電子メールアカウント)。ただし、オフラインメッセージ ストレージまたはメッセージ転送が有効になっていない場合、サーバーは、送信者にスタンザエラー を返さなければなりません。 (注:オフライン メッセージ記憶とメッセージ転送が 以来、彼らは厳密に実装し、サービス プロビジョニングの問題であり、XMPPで定義されていません。)IQスタンザの場合

、サーバー自体がユーザー に代わって返信しなければなりませんIQ結果またはIQエラーのいずれかを含む。具体的には、修飾された名前空間の セマンティクスが、サーバ が提供できる応答を定義する場合、サーバは ユーザの代わりにスタンザに応答しなければならない。そうでない場合、サーバーは スタンザ・エラーで応答しなければならない。

+0

ありがとうございます。 QUEUEシステムと非常によく似ています。差異を確認するのは難しい –

+2

XMPPではエンドツーエンドの配信保証はありません。短い待ち時間を意図していますが、各ホップで2フェーズコミットの確認を慎重に安全に保存することを犠牲にしています。 –

関連する問題