如何通过XMPP查询用户及其订阅(smack API)

时间:2012-06-05 13:03:47

标签: xmpp openfire smack

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

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

1 个答案:

答案 0 :(得分:0)

您应该能够使用PubSubManager(< - Smack api doc链接)来获取所有订阅和节点。下面使用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实例的名称。但是,如果需要节点和特定节点信息,可以使用管理器从ids获取节点,然后使用Node类获取节点信息。查看该文档,您可以获得有关订阅节点所需的全部内容。

希望有所帮助!