2

我正在使用 slimxmpp 连接到 Google Talk。我正在尝试跟踪联系人何时使用该changed_status事件更改其状态。我遇到的问题是,当我记录状态更改时,与changed_status事件关联的函数似乎被多次调用。为什么会这样?

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

4

2 回答 2

5

答案是您在 SleekXMPP 中暴露了一个我需要修复的错误 :)

changed_status 事件针对接收到的任何出席信息节触发,而不是仅在资源的状态或显示值更改时触发。

错误修复现在在开发分支中,它将在即将发布的 RC3 版本中。

于 2011-11-18T22:00:16.370 回答
0

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

于 2011-11-18T07:39:51.483 回答