Javascript strophe.js PEP处理程序未正确连接

Javascript strophe.js PEP处理程序未正确连接,javascript,xmpp,publish-subscribe,strophe,pep,Javascript,Xmpp,Publish Subscribe,Strophe,Pep,我一直在使用PEP插件(在这里找到:)连接到用户节点,但是我遇到了一些问题。调用我的连接块时,我会执行以下操作: XMPP.connection.send($pres()); XMPP.getRoster(); XMPP.connection.addHandler(XMPP.getPresence, null, "presence"); 当我从我试图访问的节点的JID收到订阅回执(因此具有双向订阅)时,我执行: XMPP.connection.pep.subscribe(JID, node,

我一直在使用PEP插件(在这里找到:)连接到用户节点,但是我遇到了一些问题。调用我的连接块时,我会执行以下操作:

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和节点都有效。我在控制台中收到成功消息,但是事件处理程序onMessage没有正确连接。我已经设置了调试,所以我可以看到传入和传出的节,并且我不会从节点接收任何内容(我知道这是在定期发布的)。我不太清楚为什么会发生这种情况

如果我从已连接的块中删除所有内容,并从web控制台手动创建双向订阅,然后在现在为空的块中添加XMPP.connection.pep.subscribe,则效果很好


我尝试了多个PEP和pubsub插件,得到了相同的行为。我在一个路障,将非常感谢任何人的投入!谢谢

您使用的是哪台服务器

看起来您正在尝试执行显式订阅,而不是更普通的隐式PEP订阅。许多服务器将只支持隐式订阅,即向信息中添加
[node URI]+notify


此外,有些服务器有一个bug,您需要显式地向刚刚订阅您的用户发送状态信息,而不是在您批准他们的订阅请求时服务器正确地向他们提供当前状态信息。此错误会妨碍隐式订阅。

您使用的是哪台服务器

看起来您正在尝试执行显式订阅,而不是更普通的隐式PEP订阅。许多服务器将只支持隐式订阅,即向信息中添加
[node URI]+notify


此外,有些服务器有一个bug,您需要显式地向刚刚订阅您的用户发送状态信息,而不是在您批准他们的订阅请求时服务器正确地向他们提供当前状态信息。此错误会妨碍隐式订阅。

我正在运行ejabberd。。。我相信它是2.1.8版。我将尝试隐性政治公众人物订阅,并确保我向订阅我的人发送状态。我正在运行ejabberd。。。我相信它是2.1.8版。我将尝试隐性政治公众人物订阅,并确保我向订阅我的人发送出席信息。