Я использую плагин 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 и узел действительны. Я получаю УСПЕХ в консоли, однако обработчик события onMessage не подключен должным образом. У меня есть набор отладки, чтобы я мог видеть входящие и исходящие строфы, и я не получаю ничего от узла (который, как я знаю, публикуется через регулярные промежутки времени). Я не совсем уверен, почему это происходит.
Если я удаляю все из подключенного блока и просто вручную создаю двунаправленную подписку из веб-консоли и добавляю XMPP.connection.pep.subscribe в этот теперь пустой блок, он работает нормально.
Я пробовал несколько плагинов PEP и pubsub и получаю одинаковое поведение. Я нахожусь на дорожном блоке и буду очень признателен всем! Спасибо!