【发布时间】:2023-03-25 15:31:02
【问题描述】:
我正在开发一个简单的 android 聊天应用程序。我正在使用 asmack 一个一个地创建三个用户 并在创建时提供名册条目 roster.createEntry();方法
首先我创建
1.) 用户 111 有两个名册条目 (JID=222@localhost.localdomain,JID=333@localhost.localdomain)
然后我创建第二个用户
2.)用户 222 有两个名册条目 (JID=111@localhost.localdomain,JID=333@localhost.localdomain)
然后我创建用户 333
3.) 333 有两个名册条目 (JID=111@localhost.localdomain,JID=222@localhost.localdomain)
当我看到所有三个用户的名册条目时,然后
对于用户 111
订阅类型
JID=222@localhost.localdomain : "from"
JID=333@localhost.localdomain : "from"
对于用户 222
订阅类型
JID=111@localhost.localdomain : "to"
JID=333@localhost.localdomain : "from"
对于用户 333
订阅类型
JID=111@localhost.localdomain : "to"
JID=222@localhost.localdomain : "to"
所以我的问题是虽然所有三个用户都在线但是存在如下
a.) 111 对 222 和 333 “可用”
b.) 222 仅适用于 333
c.) 333 不适用于任何用户
显然这是由于“来自”状态。但我希望所有用户都在线并且都添加到彼此的名册列表中,所以我需要所有三个用户名册列表的订阅状态为“两者”。所以他们将是如果他们在线,则彼此“可用”。
请帮助我如何实现这一目标。
【问题讨论】:
-
我认为这个链接stackoverflow.com/a/6118119/1081355 可能会有所帮助。
标签: java android openfire smack asmack