XMPP 一种基于标准通用标记语言的子集XML的协议,继承了在XML环境中灵活的发展性,XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。(from 百度)
XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。(from 百度)
XMPP实现即时通讯通过Openfire + Spark搭建服务器。原理:userA和userB通过聊天服务器作为中介发送和接收消息,消息的以Xml格式传输
连接服务器及回执
发送消息的xml数据
初始化聊天配置
登录连接,监听连接及消息
conn.addConnectionListener(new ConnectionListener()); //监听连接
Roster好友花名册
roster.addRosterListener(new RosterListener()); //监听好友请求
roster.createEntry(friendJID, null, null); //申请加为好友
同意加为好友
拒绝加为好友
ChatManager消息管理器
chatManager.addChatListener(new ChatManagerListener());//消息监听器,用于监听接收到的消息,消息以Xml格式,使用Xml解析
发送消息
技术难点
①连接的保活。在手机端需要不断监听与