質問

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>
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top