我一直在使用 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 插件并获得了相同的行为。我遇到了障碍,非常感谢任何人的意见!谢谢!