XEP-0045多人聊天相关协议

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:10   1160   0

XMPP Room


启用XMPPRoom模块

 // Configure xmppRoom
 
 XMPPJID *roomJID = [XMPPJID jidWithString:ROOM_JID];
 
 xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:self jid:roomJID];
 
 [xmppRoom activate:xmppStream];
 [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];


连接XMPP服务器

 // Start connection process
 
 NSError *err = nil;
 if (![xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&err])
 {
  DDLogError(@"MUCTesting: Cannot connect: %@", err);
 }

连接认证

- (void)xmppStreamDidConnect:(XMPPStream *)sender
{
 DDLogInfo(@"%@: %@", THIS_FILE, THIS_METHOD);
 
 [xmppStream authenticateWithPassword:XMPP_PASSWORD error:nil];
}


认证成功,使用quack昵称加入ROOM_JID房间

- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender
{
 DDLogInfo(@"%@: %@", THIS_FILE, THIS_METHOD);
 
 [xmppRoom joinRoomUsingNickname:@"quack" history:nil];
}


获取房间信息
- (void)xmppRoomDidJoin:(XMPPRoom *)sender

{
 DDLogInfo(@"%@: %@", THIS_FILE, THIS_METHOD);
 

[xmppRoom fetchConfigurationForm];

[xmppRoom fetchBanList]; [xmppRoom fetchMembersList]; [xmppRoom fetchModeratorsList]; }

如果房间存在,会调用委托


// 收到禁止名单列表
- (void)xmppRoom:(XMPPRoom *)sender didFetchBanList:(NSArray *)items;
// 收到好友名单列表
- (void)xmppRoom:(XMPPRoom *)sender didFetchMembersList:(NSArray *)items;
// 收到主持人名单列表
- (void)xmppRoom:(XMPPRoom *)sender didFetchModeratorsList:(NSArray *)items;


房间不存在,调用委托

- (void)xmppRoom:(XMPPRoom *)sender didNotFetchBanList:(XMPPIQ *)iqError;
- (void)xmppRoom:(XMPPRoom *)sender didNotFetchMembersList:(XMPPIQ *)iqError;
- (void)xmppRoom:(XMPPRoom *)sender didNotFetchModeratorsList:(XMPPIQ *)iqError;


离开房间

 [xmppRoom deactivate:xmppStream];


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP