您的位置:首页 > 移动开发 > IOS开发

iOS 的 XMPPFramework 简介

2015-11-18 11:01 274 查看
XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RFC-3920),同时还提供了用于读写XML的工具,大大简化了基于XMPP的通信应用的开发。

1. 登录和好友上下线

1.1XMPP中常用对象们

XMPPStream:xmpp基础服务类

XMPPRoster:好友列表类

XMPPRosterCoreDataStorage:好友列表(用户账号)在core data中的操作类

XMPPvCardCoreDataStorage:好友名片(昵称,签名,性别,年龄等信息)在core data中的操作类

XMPPvCardTemp:好友名片实体类,从数据库里取出来的都是它

xmppvCardAvatarModule:好友头像

XMPPReconnect:如果失去连接,自动重连

XMPPRoom:提供多用户聊天支持

XMPPPubSub:发布订阅

1.2登录操作,也就是连接xmpp服务器

connect成功之后会依次调用XMPPStreamDelegate的方法,首先调用

然后

在该方法下面需要使用xmppStream 的authenticateWithPassword方法进行密码验证,成功的话会响应delegate的方法,就是下面这个

1.3上线

实现 - (void)xmppStreamDidAuthenticate:(XMPPStream *)sender 委托方法

1.4退出并断开连接

1.5好友状态

获取好友状态,通过实现

方法,当接收到 presence 标签的内容时,XMPPFramework 框架回调该方法

一个 presence 标签的格式一般如下:



presence 的状态:

available 上线

away 离开

do not disturb 忙碌

unavailable 下线

2. 接收消息和发送消息

2.1接收消息

通过实现

方法

当接收到 message 标签的内容时,XMPPFramework 框架回调该方法

根据 XMPP 协议,消息体的内容存储在标签 body 内

2.2发送消息

发送消息,我们需要根据 XMPP 协议,将数据放到标签内,例如:



3. 获取好友信息和删除好友

3.1好友列表和好友名片

3.2添加好友

3.3收到添加好友的请求

3.4删除好友

4. 聊天室

初始化聊天室

创建聊天室成功

加入聊天室,使用昵称

获取聊天室信息

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

房间不存在,调用委托

离开房间

XMPPRoomDelegate的其他代理方法:

离开聊天室

新人加入群聊

有人退出群聊

有人在群里发言

5. 消息回执

这个是XEP-0184协议的内容

协议内容:

发送消息时附加回执请求



代码实现

收到回执请求的消息,发送回执



代码实现

6. 添加AutoPing

为了监听服务器是否有效,增加心跳监听。用XEP-0199协议,在XMPPFrameWork框架下,封装了 XMPPAutoPing 和 XMPPPing两个类都可以使用,因为XMPPAutoPing已经组合进了XMPPPing类,所以XMPPAutoPing使用起来更方便。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: