我正在使用sleekxmpp连接到Google Talk。我正在尝试使用changed_status
事件跟踪联系人何时更改其状态。我遇到的问题是,当我记录状态更改时,与changed_status
事件关联的函数似乎被多次调用。为什么会这样?
我认为这与联系人登录Google Talk的方式有关,也就是说他们可能会在同一台计算机上多次打开该联系人。因此,当他们关闭计算机时会影响两个会话,并且每个会话都会触发changed_status
事件。
答案 0 :(得分:5)
答案是您暴露了我需要修复的SleekXMPP中的错误:)
对于收到的任何在线节,已触发changed_status事件,并且仅在资源的状态或显示值发生更改时才触发。
错误修复现在位于开发分支中,它将在即将发布的RC3中发布。
答案 1 :(得分:0)
检查与每次更改相关联的资源。如果同一用户的资源都不同,那是因为用户从多个不同的客户端登录,可能来自多个不同的计算机。如果您订阅了这些用户,您将获得所有用户的在线状态更新。