0

我目前正在一个 openfire 服务器上工作,我有不同的用户和 4 个可能的订阅主题。现在我想显示在客户端开始时订阅的主题。

有没有办法通过 Smac (xmpp) 搜索用户的订阅?

4

1 回答 1

0

您应该能够使用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类获取节点信息。检查该文档,您可以获得有关订阅节点的几乎所有信息。

希望有帮助!

于 2012-06-06T16:35:06.297 回答