IQ要求のためにXMPPサーバーまたはクライアントからフルJIDを取得する
-
11-12-2019 - |
質問
XMPPFrameworkとOpenFire XMPPサーバーを使用するiOSアプリケーションに取り組んでいます。私はほとんど完了していますが、私のiOSの要求を受け取ることを避けています。私はメッセージを受信してIQ要求を送信することができましたが、IQ要求を受信しませんでした。
IQクライアントとXMPPサーバからIQ要求を送信しようとしましたが、IOSアプリはIQ要求を無視したばかりです。研究の久しぶりに、私は私の問題を絞り込みました。IQリクエストをBare JIDに送信していたことがわかりました。Bare JIDは、クライアントに直接通信しないようにサーバーにルーティングされました。
私が見つけた解決策は、フルJIDを取得し、「IQメッセージ」メッセージをフルJIDに設定することで、Bare JIDではありません。私はどのように私がリソースを取得するか、またはフルJIDに裸のJIDを作ることができる困難が困難です。
誰かが私にいくつかの提案をしてください。私は私のiOSクライアントにIQ要求を送信できるように完全なJIDを得ることができるようにしたいです。
解決
IQを送信したい人の存在を購読する:
<presence type='subscribe' from='me@example.com' to='contact@example.com'/>
.
彼らはあなたの購読を受け入れる必要があります:
<presence type='subscribed' to='me@example.com' from='contact@example.com'/>
.
それからあなたは彼らのすべてのクライアントから完全なJIDを含むプレゼンスの取得を始めます:
<presence to='me@example.com' from='contact@example.com/home'/>
.
フル機能のクライアントがある場合、 XEP-0115でマークアップするプレゼンスを送信します。で、あなたがそれを送る前に彼らのクライアントがあなたのIQプロトコルをサポートしているかどうかを知ることができます:
<presence to='me@example.com' from='contact@example.com/home'>
<c xmlns='http://jabber.org/protocol/caps'
hash='sha-1'
node='http://code.google.com/p/exodus'
ver='QgayPKawpkPSDYmwT/WM94uAlu0='/>
</presence>
. 所属していません StackOverflow