XMPPFramework番外篇之XMPPJID

用户、房间(群组)都有一个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为:[email protected]/iOS
//如果resource穿nil的话
XMPPJID *userJID2 = [XMPPJID jidWithUser:@"cxf" domain:XMPP_DOMAIN resource:nil];
//以上创建userJID2为:[email protected]
用户XMPPJID的full和bare
Bare就是除去resource部分
userJID.full即[email protected]/iOS;
userJID.bare即[email protected];
userJID.full 和 userJID.bare都是[email protected]

2、房间XMPPJID组成规则

房间的XMPPJID组成和个人的组成有点区别,房间的完整的JID规则是[email protected]/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即[email protected],这个就可以代表这个房间
[xmppRoom joinRoomUsingNickname:@"cxf" history:nil];//xmppRoom即房间的对象,在XMPPFramework群聊章节有介绍,cxf即nickname
//如果你加入房间之后,获取到的房间jid就是[email protected]/cxf

你可能感兴趣的:(XMPPFramework番外篇之XMPPJID)