JID の仕組み、優先順位、およびメッセージの送信方法を理解する必要があります。
JID の形式は次のとおりです。user@domain/resource
ログインしたユーザーの JID は一意である必要があります。通常、Web クライアントを使用する場合は、衝突が発生しないように各セッションにランダムなリソースを割り当てます。
これで、ユーザーがメッセージを送信すると、スタンザのto
属性がメッセージの受信者を指定します。<message>
リソースが受信者の一部である場合、その JID のみがメッセージを受信します。受信者が生の JID (user@domain) の場合、優先度が適用されます (こちらを参照)。
- 任意の時点で最も優先度の高いリソースが、受信メッセージを受信するリソースになります。
- 2 つ以上のリソースが同じ優先度を持つ場合、その優先度を持つすべてのリソースが受信メッセージを受信するか、サーバーの実装によっては、サーバー固有の基準に従って受信する可能性があります。
- 接続されているすべてのリソースの優先度が負の場合、いずれかのリソースの優先度が正にリセットされるまで、着信メッセージはサーバー側のキューに入れられます。
プレゼンスを送信するときに、優先度 ([-128, 127] の整数) を設定できます (完全な仕様については、 rfcを参照してください)。例:
<presence>
<status>Learning XMPP</status>
<priority>1</priority>
</presence>