XMPP:可扩展通讯和表示协议(可用于服务类实时通讯(IM),表示和需求响应,服务中以XML数据流传输)
XML特点:
1.易解析
2.易阅读
XMPP包含三大通信类别:
1.消息传递(其数据在有关各方之间传输)
2.联机状态(它允许用户广播其在线状态及可用性)
3.查询请求(它允许XMPP实体发送请求并从另一个实体接收响应)
消息Message包含:
1.subject:主题(可读字符串)
2.body:内容(可读字符串)
3.thread:线程(唯一标示符)
状态Presence包含:
1.priority:优先级(消息到用户的优先级顺序)
2.show:机器可读值(表示要显示的状态,away(暂离),chat(在线),dnd(勿扰),xal(长时间离开)
3.status:一个可读的show值,用户可自定义的字符串
查询请求:其中“发布——订阅”模型应用广泛
发布者————(通知或者更新)————服务器————( 订阅)————用户(用户数量不限)
XMPP使用:
一.配置
最好配置在AppDelegate中 保证每次打开App便可直接初始化stream和相应插件。 XMPPReconnect插件用于自动重连 ,XMPPMessageAechiving 配合XMPPMessageAechivingCoreDataStorage使用,将数据存在本地CoreData中
配置完成后,需要在哪里使用stream,就在哪里给stream添加委托,如果使用XMPPMessageAechivingCoreDataStorage也要做相应配置,cotext是FRC中的上下文
使用时还要注意一些细节,如在改变stream委托人时
二.登录服务器
1.建立连接
设置自己的XMPPJID,包括使用者账号和域名等,设置自己的JID之后,请求建立连接
连接成功回调,连接成功后去注册密码
连接超时回调方法
注册密码成功回调 注册密码成功后去验证密码
注册密码失败回调
验证密码成功回调 验证成功后,注意设置一个在线状态
验证密码失败回调
三.开始通信
接收成功回调
发送成功回调
将MEssage实体通过对方JID发送给对方
AppDelegate
AppDelegate
AppDelegate
AppDelegate