XMPP strophe,获取在线用户列表。

5

如何使用Strophe JS库获取“好友”的在线状态?不只是花名册,还包括单个用户的在线状态(或者我需要在花名册中为每个用户执行1个请求?) 通常,我只会收到每个资源的“出席更改”通知,但我想知道一个用户是否在线或离线(类似于Pidgin),而不用考虑每个用户已登录多少资源可以同时在线。

1个回答

6

默认情况下,将所有用户视为离线状态。对于所有在线用户资源,您会自动收到出席通知。您会收到所有出席更改的通知,并且您会在登录后获得所有在线联系人的初始出席状态。


好的,但是如果有人使用相同的帐户从两个客户端登录(昵称为a2),并且其中一个客户端断开连接(a2@localhost/first),我会收到资源断开连接的通知,但我不知道它(a2)是否还有其他资源(例如a2@localhost/second、a2@localhost/third)在线!我该如何知道? - M4rk
1
当用户使用两个资源(例如资源1 = PC和资源2 = Phone)登录时,您将从该用户的登录中获得2个出席数据包。 <presence from="user@server/PC" /> 和 <presence from="user@server/Phone"/>。要为用户分配出席状态,您必须检查from属性。当一个资源离线时,您就知道另一个仍然在线。 - Alex
你知道这个是否已经有实现了吗?谢谢。 - M4rk
1
这本书《Professional XMPP编程》和书中的所有示例 https://github.com/metajack/profxmpp 都可以在这里找到。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接