Обработчик PEP strophe.js неправильно подключен - PullRequest
2 голосов
/ 15 июля 2011

Я использую плагин 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 и получаю одинаковое поведение. Я нахожусь на дорожном блоке и буду очень признателен всем! Спасибо!

1 Ответ

0 голосов
/ 15 июля 2011

Какой сервер вы используете?

Похоже, вы пытаетесь сделать явную подписку, а не более обычную неявную подписку PEP.Многие серверы поддерживают только неявную подписку, когда вы добавляете [node URI]+notify к вашей caps информации.

Кроме того, на некоторых серверах была ошибка, из-за которой вам нужно было явно отправлять информацию о присутствии людям,подписан на вас, а не на сервер, который правильно сообщает вам ваше текущее присутствие, когда вы одобряете их запрос на подписку.Эта ошибка будет препятствовать неявным подпискам.

...