2011-11-18 29 views
2

我正在使用sleekxmpp连接到Google Talk。我正在尝试使用changed_status事件来跟踪联系人何时更改其状态。我遇到的问题是,当我记录状态更改时,与changed_status事件相关的功能似乎被称为多次。为什么会这样呢?sleekxmpp changed_status事件,多次触发

我认为这与联系人登录Google Talk的方式有关,也就是说他们可能会从同一台计算机多次打开该联系人。因此,当他们关闭计算机时,它会影响两个会话,并且每个会话都会触发changed_status事件。

回答

5

的答案是,你暴露在SleekXMPP一个错误,我需要修复:)

的changed_status事件被烧成节收到的存在,而当资源的状态或示值不仅改变射击。

错误修正现在在开发分支,它将在即将成为RC3版本。

0

检查与每个更改关联的资源。如果同一用户的资源都不同,那是因为用户从多个不同的客户端登录,可能来自多个不同的机器。如果您订阅了它们,您将从所有用户的客户端获得状态更新。

+0

我每次都记录完整的jid,它告诉我相关的资源(/android.2G29rG或其他),在某些情况下,它们看起来也是一样的。 – Jordan