XEP-0045多人聊天相关协议

8 篇文章 0 订阅
7 篇文章 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];


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值