一次获取多个 JID XMPP
Posted
技术标签:
【中文标题】一次获取多个 JID XMPP【英文标题】:Get Presence of Multiple JIDs at once XMPP 【发布时间】:2011-03-16 01:59:16 【问题描述】:我正在开发一个 XMPP 应用程序,并将执行一个全局共享名册,这样我就不必执行出席信息订阅请求。我还需要获得一定范围的 JabberID,而不是整个全球名册。我们不想做单个定向出席信息节,因为这将需要每个页面加载多达 15 个出席信息调用。 XMPP 中是否有一种方法可以让我一次获得多个但特定的 JID?
类似:
<presence from="user1@domain.tld,user2@domain.tld,user3@domain.tld" to="user4@domain.tld" />
提前致谢!
【问题讨论】:
希望有这样的东西,但不幸的是我不认为 XMPP 将允许你以直接的方式做到这一点。您将不得不继续破解推送存在节的服务器端实现,以使其按需要工作。您的案例与facebook主页非常相似,我可以随意保持刷新并期望facebook聊天显示我的列表中的在线好友。 Facebook 是否会在每次刷新时更新我好友的可用性状态??,确实不是。您可能希望在相同的线路上进行投资以实现可扩展的实施。 【参考方案1】:您可以创建一个 pubsub 节点,其中每个项目都与用户有关。 id 是用户的裸 JID,内容可以是一个数据表,说明他们是否在线。
bot 或 xmpp 模块侦听存在消息,然后适当地更新 pubsub 节点。
然后,客户端可以使用他们喜欢的任何方法查询 pubsub 节点:subscribe 并获取实时更新,或者查询并使用 requests
【讨论】:
以上是关于一次获取多个 JID XMPP的主要内容,如果未能解决你的问题,请参考以下文章
XMPP XEP-0313 Smack Android 获取所有名册成员的最新消息