XMPP创建房间

7 篇文章 0 订阅

请求

    //创建一个新的群聊房间,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>


 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值