如何从openfire获取房间列表?

我正在使用openfire服务器和XMPP协议进行聊天,并且我获得了成功。

现在我想实现聊天室。 我谷歌有关它,我得到的是“Joing Room”,“创build空间”,但首先我想从conferrance获得所有房间名称的列表。

我有自己的意见和空间:

#define CONFERENCE_ROOM_SERVER @"chatroomforfriends" #define CONFERENCE_ROOM_NAME @"cr1" 

“chatroomforfriends”是conferance的名字,它包含“cr1”的房间。

我如何获取iOS中的所有房间名称?

根据MUC XEP(0045),您可以通过查询获得所有房间的列表:

 <iq from='hag66@shakespeare.lit/pda' id='zb8q41f4' to='chat.shakespeare.lit' type='get'> <query xmlns='http://jabber.org/protocol/disco#items'/> </iq> 

你得到的答复如下:

 <iq from='chat.shakespeare.lit' id='zb8q41f4' to='hag66@shakespeare.lit/pda' type='result'> <query xmlns='http://jabber.org/protocol/disco#items'> <item jid='heath@chat.shakespeare.lit' name='A Lonely Heath'/> <item jid='coven@chat.shakespeare.lit' name='A Dark Cave'/> <item jid='forres@chat.shakespeare.lit' name='The Palace'/> <item jid='inverness@chat.shakespeare.lit' name='Macbeth&apos;s Castle'/> </query> </iq> 

在XEP-0045中提到了细节

此方法返回由MUC服务托pipe的所有公共房间。 要获得私人房间,或者获取特定用户的房间,您必须编写一个插件来处理您的自定义查询(XMPP方式),或者您可以在Openfire中为此编写servlet(HTTP方式)。