2012-04-23 57 views
1

我正在写一个使用gloox 1.0的基于xmpp的聊天客户端。我无法找到使用gloox的方式来获取服务器上的活动房间列表(其他用户创建的房间)。我使用openfire作为我的本地服务器。我怎样才能做到这一点?如何使用gloox lib获得活动房间列表?

回答

0

您需要创建一个Disco对象和一个继承DiscoHandler的自定义类。

要查询列表,请拨打getDiscoItems(muc_server_jid, ...)。您的DiscoHandler应该实现handleDiscoItems(),其中收到Disco::Items对象,items

您可以使用items.itemList()获取指向Disco::Item对象的指针std::list。对于每个Disco :: Item,您可以调用item.jid()和item.name()来获取房间的地址和(可选)名称。

+0

非常感谢!我会尝试。 – 2012-04-24 03:12:06

+0

我有我的课:ChatBotDiscoHandler_cl:公共DiscoHandler实现handleDiscoItems(常量JID&从,常量Disco ::项目和项目,int上下文);。然后我调用m_pClient-> disco() - > getDiscoItems(m_pClient-> jid()。server(),EmptyString,new ChatBotDiscoHandler_cl(),0);.但是,当我调试时,它不会运行到我的派生方法。请告诉我我错在哪里? – 2012-04-25 03:36:03