XMPP名册存在
Posted
技术标签:
【中文标题】XMPP名册存在【英文标题】:XMPP Roster presence 【发布时间】:2012-11-30 14:21:28 【问题描述】:我的名册机制有问题,我正在使用 JSJaC javascript 库。
我的情况:
用户 A 有一个简单的名册,其中包含另一个订阅“both”的用户 B。用户 B 的配置相同。
当用户 A 登录到 openfire 时,我调用我的“getRoster()”函数返回用户的朋友列表(在我的例子中,只有用户 B),但是我如何检查用户 B 当前是否可用聊天?
我看到有一些存在机制,但我不明白如何使用这些。
对不起,我的英语很差。谢谢。
【问题讨论】:
【参考方案1】:当您将自己的状态发送到服务器时,服务器开始将您订阅的联系人的所有状态发送给您。默认情况下,您必须将所有联系人视为离线。
我对 JSJaC 不熟悉,但可能有一个回调,存在的地方。
【讨论】:
【参考方案2】:您应该注册一个presence
处理程序。假设您有 roster 作为用户数据数组,您可以这样做:
xmpp.registerHandler 'presence', (response) ->
user = _.find @roster, jid: (response.getFrom().split '/').shift()
if user
if response.getType() is 'unavailable'
user.online = no
else
user.online = yes
【讨论】:
以上是关于XMPP名册存在的主要内容,如果未能解决你的问题,请参考以下文章