iOS怎么搭建xmpp聊天

iOS怎么搭建xmpp聊天,第1张

iOS 搭建xmpp聊天的具体步骤如下:

聊天室

[cpp] view plain copy

print?

//初始化聊天室

XMPPJID *roomJID = [XMPPJID jidWithString:ROOM_JID]

xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:self jid:roomJID]

[xmppRoom activate:xmppStream]

[xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()]

[cpp] view plain copy

print?

//创建聊天室成功

- (void)xmppRoomDidCreate:(XMPPRoom *)sender

{

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

}

[cpp] view plain copy

print?

//加入聊天室,使用昵称

[xmppRoom joinRoomUsingNickname:@"quack" history:nil]

[cpp] view plain copy

print?

//获取聊天室信息

- (void)xmppRoomDidJoin:(XMPPRoom *)sender

{

[xmppRoom fetchConfigurationForm]

[xmppRoom fetchBanList]

[xmppRoom fetchMembersList]

[xmppRoom fetchModeratorsList]

}

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

[cpp] view plain copy

print?

// 收到禁止名单列表

- (void)xmppRoom:(XMPPRoom *)sender didFetchBanList:(NSArray *)items

// 收到好友名单列表

- (void)xmppRoom:(XMPPRoom *)sender didFetchMembersList:(NSArray *)items

// 收到主持人名单列表

- (void)xmppRoom:(XMPPRoom *)sender didFetchModeratorsList:(NSArray *)items

房间不存在,调用委托

[cpp] view plain copy

print?

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

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

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

离开房间

[cpp] view plain copy

print?

[xmppRoom deactivate:xmppStream]

[cpp] view plain copy

print?

//离开聊天室

- (void)xmppRoomDidLeave:(XMPPRoom *)sender

{

DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD)

}

其他代理

[cpp] view plain copy

print?

//新人加入群聊

- (void)xmppRoom:(XMPPRoom *)sender occupantDidJoin:(XMPPJID *)occupantJID

{

DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD)

}

//有人退出群聊

- (void)xmppRoom:(XMPPRoom *)sender occupantDidLeave:(XMPPJID *)occupantJID

{

DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD)

}

//有人在群里发言

- (void)xmppRoom:(XMPPRoom *)sender didReceiveMessage:(XMPPMessage *)message fromOccupant:(XMPPJID *)occupantJID

{

DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD)

}

主要用的类有: Roster 可以理解为好友花名册,提供创建删除获取列表等功能Roster.SubscriptionMode 这个在建立链接的时候使用,我的理解就是设置接收请求的模式,有三种,我们项目用的是SubscriptionMode.manual 也就是手动处理。 Presence 有...


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11690515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存