Событие sleekxmpp updated_status, запускается несколько раз - PullRequest
2 голосов
/ 18 ноября 2011

Я использую sleekxmpp для подключения к Google Talk. Я пытаюсь отслеживать, когда контакты меняют свой статус, используя событие changed_status. Проблема, с которой я сталкиваюсь, заключается в том, что, когда я регистрирую изменение статуса, функция, связанная с событием changed_status, кажется, вызывается несколько раз. Почему это может быть?

Я думаю, что это как-то связано с тем, как контакт регистрируется в Google Talk, то есть он может открываться несколько раз с одного компьютера. Поэтому, когда они закрывают свой компьютер, это влияет на оба сеанса, и каждый сеанс вызывает событие changed_status.

Ответы [ 2 ]

5 голосов
/ 19 ноября 2011

Ответ заключается в том, что вы выявили ошибку в SleekXMPP, которую мне нужно исправить:)

Событие change_status вызывало любой полученный раздел присутствия, а не только при изменении состояния ресурса или отображаемого значения.

Исправление ошибки теперь находится в ветке разработки и будет в скором выпуске RC3.

0 голосов
/ 18 ноября 2011

Проверьте ресурс, связанный с каждым изменением.Если для одного и того же пользователя все ресурсы разные, то это потому, что пользователь вошел в систему с нескольких разных клиентов, возможно, с нескольких разных компьютеров.Вы будете получать обновления присутствия от всех клиентов пользователя, если вы подписаны на них.

...