我目前正在一个 openfire 服务器上工作,我有不同的用户和 4 个可能的订阅主题。现在我想显示在客户端开始时订阅的主题。
有没有办法通过 Smac (xmpp) 搜索用户的订阅?
您应该能够使用PubSubManager(<- Smack api 文档链接)来获取所有订阅和节点。下面使用 PubSubManager 获取订阅列表,然后使用该列表获取所有订阅 ID:
try
{
PubSubManager manager = new PubSubManager(XMPPClient.connection);
List<Subscription> listSubs = manager.getSubscriptions();
for(int i = 0; i < listSubs.size(); i++)
{
System.out.println(listSubs.get(i).getId());
}
}
catch(XMPPException e)
{
System.out.println(e.getMessage());
}
打印连接订阅的所有订阅 ID 的简单示例。XMPPClient 是您的 Smack XMPPClient 实例的名称。但是,如果您需要节点和特定节点信息,您可以使用管理器从 id 获取节点,然后使用Node类获取节点信息。检查该文档,您可以获得有关订阅节点的几乎所有信息。
希望有帮助!