XMPPFramework番外篇之XMPPJID
2019-03-04 本文已影响0人
极客飞
用户、房间(群组)都有一个XMPPJID,可以理解XMPPJID就是用户、房间的身份证号,唯一识别码。
1、用户XMPPJID组成规则
用户的完整的JID规则是
username@domain/resource
,其中username就是用户名称,domain和resource是我们之前在项目中设置好的,其中resource不必要,举例如下:
#define XMPP_DOMAIN @"127.0.0.1"//对应domain
#define XMPP_RESOURCE @"iOS"//对应resource
//创建XMPPJID对象
XMPPJID *userJID = [XMPPJID jidWithUser:@"cxf" domain:XMPP_DOMAIN resource:XMPP_RESOURCE];
//以上创建userJID为:cxf@127.0.0.1/iOS
//如果resource穿nil的话
XMPPJID *userJID2 = [XMPPJID jidWithUser:@"cxf" domain:XMPP_DOMAIN resource:nil];
//以上创建userJID2为:cxf@127.0.0.1
用户XMPPJID的full和bare
Bare就是除去resource部分
userJID.full即cxf@127.0.0.1/iOS;
userJID.bare即cxf@127.0.0.1;
userJID.full 和 userJID.bare都是cxf@127.0.0.1
2、房间XMPPJID组成规则
房间的XMPPJID组成和个人的组成有点区别,房间的完整的JID规则是
roomname@subdomain.domain/nickname
,其中roomname是房间的名称,subdomain和domain就是之前在项目中设置好的,nickname是用户加入房间时使用的昵称。举例如下:
#define XMPP_DOMAIN @"127.0.0.1"//对应domain
#define XMPP_SUBDOMAIN @"conference"//对应subdomain
NSString *roomId = [NSString stringWithFormat:@"%@@%@.%@",@"roomname",kXMPP_SUBDOMAIN,XMPP_DOMAIN];
XMPPJID *roomJID = [XMPPJID jidWithString:roomId];//创建房间的XMPPJID
//roomJID即roomname@conference.127.0.0.1,这个就可以代表这个房间
[xmppRoom joinRoomUsingNickname:@"cxf" history:nil];//xmppRoom即房间的对象,在XMPPFramework群聊章节有介绍,cxf即nickname
//如果你加入房间之后,获取到的房间jid就是roomname@conference.127.0.0.1/cxf