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
上一篇下一篇

猜你喜欢

热点阅读