AMQP と XMPP の違いを理解しようとしていますが、XMPP がキューのように機能するかどうかはよくわかりません。さまざまなクライアントにメッセージを送信するとき、そのうちの 1 つがダウンしているとどうなりますか? サーバーは、クライアントが再び立ち上がるまでメッセージをキューに入れますか、それともどのように機能しますか?
ありがとう
JID がオフラインのときにメッセージと iq がどのように処理されるかは、XMPP サーバーの実装によって異なります。RFC 3921 のセクション 11.1 :
それ以外の場合、JID が次の形式であり、ユーザーに関連付けられた使用可能なリソースがない場合、スタンザの処理方法はスタンザ タイプによって異なります。
...
メッセージスタンザの場合、サーバーは、ユーザーに代わってスタンザを保存し、ユーザーが次に利用可能になったときに配信するか、他の手段 (ユーザーの電子メールアカウントなど) を介してメッセージをユーザーに転送することを選択できます (MAY)。ただし、オフライン メッセージ ストレージまたはメッセージ転送が有効になっていない場合、サーバーは送信者にスタンザ エラーを返す必要があります。(注: オフライン メッセージ ストレージとメッセージ転送は、厳密には実装とサービス プロビジョニングの問題であるため、XMPP では定義されていません。)
IQスタンザの場合、サーバー自体がユーザーに代わってIQ結果またはIQエラーのいずれかで応答する必要があります。具体的には、修飾名前空間のセマンティクスがサーバーが提供できる応答を定義する場合、サーバーはユーザーに代わってスタンザに応答する必要があります。そうでない場合、サーバーはスタンザエラーで応答する必要があります。