如何从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's Castle'/> </query> </iq>
在XEP-0045中提到了细节
此方法返回由MUC服务托pipe的所有公共房间。 要获得私人房间,或者获取特定用户的房间,您必须编写一个插件来处理您的自定义查询(XMPP方式),或者您可以在Openfire中为此编写servlet(HTTP方式)。