3

今日は XMPPFramework に挑戦しています...

私は ejabberd を正しく構成しました。サーバーは稼働しており、インバンド登録によってユーザーを正しく登録しています。

しかし、あるデバイスからサブスクリプション リクエストを送信しようとすると、2 番目のデバイスは最初のデバイスのプレゼンスを受信できません。文書化されているように、ユーザーをサブスクライブするために最初のデバイスで使用するコードは次のとおりです。

[[[self appDelegate] xmppRoster] addUser:userJID withNickname:nickname groups:nil subscribeToPresence:YES];

すべてがうまくいけば、2 番目のデバイスはデリゲート メソッドを起動する必要があります。

- (void)xmppRoster:(XMPPRoster *)sender didReceiveBuddyRequest:(XMPPPresence *)presence

問題は、このデリゲート メソッドが起動されないことです。サーバーはユーザーの新しい連絡先を作成します。ejabberd Web 管理者で確認できますが、サブスクリプション タイプは [なし] に設定されています。

何か案は?

アップデート:

うーん、ホスト名を JID に含めるのを忘れていたようです。現在、XMPPRoster のデリゲートは呼び出されていませんが、ejabberd で、リクエストが「なし」ではなく「両方」であり、検証が保留中であることがわかります。

XMPPRoster デリゲートが起動しない理由を想像できません...ユーザーが新しいサブスクリプション要求を受信したときに、ejabberd サーバーが適切な通知を送信していないようです...

4

1 に答える 1

1

eJabberd の設定が間違っていたようです。OpenFireをインストールしただけで、すべてが正しく機能します。

于 2013-05-12T21:12:35.710 に答える