2011-07-15 9 views
2

私は(https://github.com/flosse/strophejs-plugins/blob/master/pep/strophe.pep.jsこちらをご覧ください)PEPプラグインを使用している接続しません。私は(これ双方向サブスクリプションを持つ)アクセスしようとしていたノードのJIDから戻って、サブスクライブを受信するとstrophe.js PEPハンドラが適切に

XMPP.connection.send($pres()); 
XMPP.getRoster(); 
XMPP.connection.addHandler(XMPP.getPresence, null, "presence"); 

私が実行します:私の接続ブロックが呼び出されたとき、私は次の操作を行う

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プラグインを試してみましたが、同じ動作を取得しています。私は道路のブロックにあり、誰もが入力を非常に感謝しています!ありがとう!

答えて

0

サーバーを使用していますか?

明示的なサブスクリプションというよりも、通常の暗黙のPEPサブスクリプションを行うしようとしているようです。多くのサーバーでは、caps情報に[node URI]+notifyを追加する暗黙的なサブスクリプションのみがサポートされます。

また、一部のサーバーは、明示的にだけではなく、あなたは自分のサブスクリプション要求を承認したときに、正しくそれらをあなたの現在のプレゼンスを付与サーバよりも、あなたに加入の人に存在を送信する必要があるバグがありました。このバグは、暗黙のサブスクリプションを妨げるでしょう。

+0

私はejabberdを実行しています...私はバージョン2.1.8だと思います。暗黙的なPEP購読を試み、私が購読している人にプレゼンスを送っていることを確認します。 –