ユーザーノードに接続するためにPEP プラグイン (ここにあります: https://github.com/flosse/strophejs-plugins/blob/master/pep/strophe.pep.js ) を使用していますが、問題が発生しています。接続されたブロックが呼び出されたら、次のことを行います。
XMPP.connection.send($pres());
XMPP.getRoster();
XMPP.connection.addHandler(XMPP.getPresence, null, "presence");
アクセスしようとしているノードの JID からサブスクライブされた返信を受け取った場合 (双方向のサブスクリプションがある場合)、次のコマンドを実行します。
XMPP.connection.pep.subscribe(JID, node,
function(){console.log("SUCCESS: Successfully subscribed to " + JID + "'s node " + node);},
function(){console.log("FAILURE: Unsuccessfully subscribed to " + JID + "'s node " + node);},
XMPP.onMessage,
true);
JID とノードの両方が有効な場合。コンソールに SUCCESS が表示されますが、イベント ハンドラ onMessage が正しくアタッチされていません。デバッグが設定されているので、受信スタンザと送信スタンザを確認でき、ノードから何も受信しません (一定の間隔で投稿されていることがわかっています)。なぜこれが起こっているのかよくわかりません。
接続されたブロックからすべてを削除し、Web コンソールから手動で双方向サブスクリプションを作成し、空のブロックに XMPP.connection.pep.subscribe を追加すると、正常に動作します。
複数の PEP および pubsub プラグインを試しましたが、同じ動作が得られます。私は障害物にいるので、誰の意見も大歓迎です! ありがとう!