请求
//创建一个新的群聊房间,roomName是房间名 fullName是房间里自己所用的昵称
NSString *jidRoom = [NSString stringWithFormat:@"%@@conference.siteviewwzp", roomName];
XMPPJID *jid = [XMPPJID jidWithString:jidRoom];
XMPPRoomCoreDataStorage *roomstorage = [[XMPPRoomCoreDataStorage alloc] init];
XMPPRoom *room = [[XMPPRoom alloc] initWithRoomStorage:roomstorage jid:jid dispatchQueue:dispatch_get_main_queue()];
XMPPStream *stream = [self xmppStream];
[room activate:stream];
[room joinRoomUsingNickname:jabberID_ history:nil];
[room addDelegate:self delegateQueue:dispatch_get_main_queue()];
创建成功
// 服务承认房间新建成功
/*
<presence xmlns="jabber:client" to="57787d89@siteviewwzp/6dcfaded" from="def@conference.siteviewwzp/57787D89@siteviewwzp">
<x xmlns="vcard-temp:x:update"><photo/></x><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://code.google.com/p/xmppframework" ver="k6gP4Ua5m4uu9YorAG0LRXM+kZY="/>
<x xmlns="http://jabber.org/protocol/muc#user">
<item jid="57787d89@siteviewwzp/6dcfaded"
affiliation="owner"
role="moderator"/>
<status code="201"/>
</x>
</presence>
*/
服务器锁定消息
AppDelegate:xmppStream:didReceiveMessage: <message xmlns="jabber:client" type="groupchat" from="def@conference.siteviewwzp" to="57787d89@siteviewwzp/6dcfaded"><body>确认配置之前已锁住该房间,禁止进入。</body></message>
查询房间默认设置
- (void)xmppRoomDidCreate:(XMPPRoom *)sender
{
DDLogInfo(@"%@: %@", THIS_FILE, THIS_METHOD);
[sender fetchConfigurationForm];
}
报文
<iq type="get" to="def@conference.siteviewwzp" id="B83A5D22-5674-4EE1-9E09-73BCABAED61F"><query xmlns="http://jabber.org/protocol/muc#owner"/></iq>
加入房间委托
AppDelegate: xmppRoomDidJoin:
AppDelegate: xmppRoom:didReceiveMessage:fromOccupant:
房间配置
<x xmlns="jabber:x:data" type="form">
<title>房间配置</title><instructions>已创建房间“efa”。要接受缺省配置,请单击“确定”按钮。或填写以下表单以完成设置:</instructions><field var="FORM_TYPE" type="hidden"><value>http://jabber.org/protocol/muc#roomconfig</value></field><field var="muc#roomconfig_roomname" type="text-single" label="房间名称"><value>efa</value></field><field var="muc#roomconfig_roomdesc" type="text-single" label="描述"><value>efa</value></field><field var="muc#roomconfig_changesubject" type="boolean" label="允许占有者更改主题"><value>0</value></field><field var="muc#roomconfig_maxusers" type="list-single" label="最大房间占有者人数"><option label="10"><value>10</value></option><option label="20"><value>20</value></option><option label="30"><value>30</value></option><option label="40"><value>40</value></option><option label="50"><value>50</value></option><option label="无"><value>0</value></option><value>30</value></field><field var="muc#roomconfig_presencebroadcast" type="list-multi" label="其 Presence 是 Broadcast 的角色"><option label="主持者"><value>moderator</value></option><option label="参与者"><value>participant</value></option><option label="访客"><value>visitor</value></option><value>moderator</value><value>2013-08-12 15:30:15.123 ChatTest[3132:c07] <message xmlns="jabber:client" type="groupchat" from="efa@conference.siteviewwzp" to="57787d89@siteviewwzp/a6f7f906"><body>确认配置之前已锁住该房间,禁止进入。</body></message>
participant</value><value>visitor</value></field><field var="muc#roomconfig_publicroom" type="boolean" label="列出目录中的房间"><value>1</value></field><field var="muc#roomconfig_persistentroom" type="boolean" label="房间是持久的"><value>0</value></field><field var="muc#roomconfig_moderatedroom" type="boolean" label="房间是适度的"><value>0</value></field><field var="muc#roomconfig_membersonly" type="boolean" label="房间仅对成员开放"><value>0</value></field><field type="fixed"><value>注意:缺省情况下,只有管理员才可以在仅用于邀请的房间中发送邀请。</value></field><field var="muc#roomconfig_allowinvites" type="boolean" label="允许占有者邀请其他人"><value>0</value></field><field var="muc#roomconfig_passwordprotectedroom" type="boolean" label="需要密码才能进入房间"><value>0</value></field><field type="fixed"><value>如果需要密码才能进入房间,则您必须在下面指定密码。</value></field><field var="muc#roomconfig_roomsecret" type="text-private" label="密码"/><field var="muc#roomconfig_whois" type="list-single" label="能够发现占有者真实 JID 的角色"><option label="主持者"><value>moderators</value></option><option label="任何人"><value>anyone</value></option><value>anyone</value></field><field var="muc#roomconfig_enablelogging" type="boolean" label="登录房间对话"><value>0</value></field><field var="x-muc#roomconfig_reservednick" type="boolean" label="仅允许注册的昵称登录"><value>0</value></field><field var="x-muc#roomconfig_canchangenick" type="boolean" label="允许使用者修改昵称"><value>1</value></field><field type="fixed"><value>允许用户注册房间</value></field><field var="x-muc#roomconfig_registration" type="boolean" label="允许用户注册房间"><value>1</value></field><field type="fixed"><value>您可以指定该房间的管理员。请在每行提供一个 JID。</value></field><field var="muc#roomconfig_roomadmins" type="jid-multi" label="房间管理员"/><field type="fixed"><value>您可以指定该房间的其他拥有者。请在每行提供一个 JID。</value></field><field var="muc#roomconfig_roomowners" type="jid-multi" label="房间拥有者"><value>57787d89@siteviewwzp</value></field></x>
|