用戶(hù)、房間(群組)都有一個(gè)XMPPJID,可以理解XMPPJID就是用戶(hù)、房間的身份證號(hào),唯一識(shí)別碼。
1、用戶(hù)XMPPJID組成規(guī)則
用戶(hù)的完整的JID規(guī)則是
username@domain/resource,其中username就是用戶(hù)名稱(chēng),domain和resource是我們之前在項(xiàng)目中設(shè)置好的,其中resource不必要,舉例如下:
#define XMPP_DOMAIN @"127.0.0.1"http://對(duì)應(yīng)domain
#define XMPP_RESOURCE @"iOS"http://對(duì)應(yīng)resource
//創(chuàng)建XMPPJID對(duì)象
XMPPJID *userJID = [XMPPJID jidWithUser:@"cxf" domain:XMPP_DOMAIN resource:XMPP_RESOURCE];
//以上創(chuàng)建userJID為:cxf@127.0.0.1/iOS
//如果resource穿nil的話(huà)
XMPPJID *userJID2 = [XMPPJID jidWithUser:@"cxf" domain:XMPP_DOMAIN resource:nil];
//以上創(chuàng)建userJID2為:cxf@127.0.0.1
用戶(hù)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組成規(guī)則
房間的XMPPJID組成和個(gè)人的組成有點(diǎn)區(qū)別,房間的完整的JID規(guī)則是
roomname@subdomain.domain/nickname,其中roomname是房間的名稱(chēng),subdomain和domain就是之前在項(xiàng)目中設(shè)置好的,nickname是用戶(hù)加入房間時(shí)使用的昵稱(chēng)。舉例如下:
#define XMPP_DOMAIN @"127.0.0.1"http://對(duì)應(yīng)domain
#define XMPP_SUBDOMAIN @"conference"http://對(duì)應(yīng)subdomain
NSString *roomId = [NSString stringWithFormat:@"%@@%@.%@",@"roomname",kXMPP_SUBDOMAIN,XMPP_DOMAIN];
XMPPJID *roomJID = [XMPPJID jidWithString:roomId];//創(chuàng)建房間的XMPPJID
//roomJID即roomname@conference.127.0.0.1,這個(gè)就可以代表這個(gè)房間
[xmppRoom joinRoomUsingNickname:@"cxf" history:nil];//xmppRoom即房間的對(duì)象,在XMPPFramework群聊章節(jié)有介紹,cxf即nickname
//如果你加入房間之后,獲取到的房間jid就是roomname@conference.127.0.0.1/cxf