androidpn-消息推送文档

androidpn-消息推送文档

ID:44811510

大小:24.59 KB

页数:5页

时间:2019-10-29

androidpn-消息推送文档_第1页
androidpn-消息推送文档_第2页
androidpn-消息推送文档_第3页
androidpn-消息推送文档_第4页
androidpn-消息推送文档_第5页
资源描述:

《androidpn-消息推送文档》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Androidpn消息推送协议1通信机制Androidpn通信机制分别由客户端和服务器完成。客户端采用基于java的XMPP协议包asmack(该包依赖于openfire下的开源项目smack)。通过该协议包提供的XMPPConnetcion类与服务器建立持久连接,并通过该连接进行用户注册和登录认证,以及接受服务器消息。服务器是基于开源的openfire工程,采用java语言实现和Spring框架提供Web服务。主要有两个部分,一个是侦听在5222端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,作用是用户注册和身份认证,并推送消息。另外

2、是Web服务器,采用一个轻量级的HTTP服务器,负责接收用户的Web请求。整个基于XMPP的通信中,服务器端和客户端的通信是基于一个session(会话)过程,会话开始,首先客户端会指定端口号,然后把准备的连接信息发送到服务器端,客户端通过XMPP协议做的只有接收消息,其他的管理连接和保存消息等都由服务器负责。消息的传递是以根节点为起始,以为结束。服务器和客户端建立Tcp连接过程如下。首先,建立会话协商,Client准备connectingtoserver(127.0.0.1:5222)。其次,服务器询问Client所支持的安全认

3、证。再者,Client发送给服务器要注册的用户。然后,Client根据服务器的要求提交用户信息。最后,Client关闭注册的STREAM元素。2客服端Client包含消息的收发、解析以及持久连接的发起、重连等功能。主要有以下几部分:⑴控制器XmppManager是Client的主控制器,主要用来管理连接信息,包括XMPP端口、IP地址、登录的用户名和密码,以及对连接的维护。5⑵消息解析处理NotificationIQ、NotificationPackerListener以及NotificationIQProvider三个类负责对收到的Notification格式的

4、消息进行解析和处理。⑶手机状态监听PersistentConnetcionListener、PhoneStateChangeListener以及ReconnectionThread三个类负责监听手机状态和断线重连。3服务器服务器主要由以下几个包组成:org.androidpn.server.xmpp异常类型定义,包含程序入口类XmppServer。org.androidpn.server.util加载配置文件,获取主机和端口等信息。org.androidpn.server.xmpp.codec是XMPP协议的XML文件解析包,server收到和发送的消息都要通过这

5、个包来进行xmpp协议编码和解码。org.androidpn.server.xmpp.handler负责对不同类型的消息进行处理org.androidpn.server.xmpp.net负责维护与client之间的持久连接,并实现了一些传输方式供发送xmpp消息时使用。org.androidpn.server.xmpp.ssl是对连接进行ssl认证的工具包。org.androidpn.server.xmpp.router包负责将收到的信息包发送到相应的handler进行处理,是一个路由包。org.androidpn.server.xmpp.presence里面只包

6、含PresenceManager类,用来维护client的在线状态。org.androidpn.server.xmpp.push包里面的NotificationManager类包含有向client发送消息的接口。服务器中使用ServerStarter类启动服务,服务启动后使用XmppServer来管理连接、加载配置等。5⑴服务器接收处理消息流程①connection接收到来着Client的packet,使用包codec解码。②路由包router根据packet的namespace等信息,将packet路由到相应的Handler。③Handler开始处理。⑵服务器发

7、送消息的流程①使用NotificationManager接口的push方法。②使用SessionManager在Session集合查找相应的client连接。③定义和组装XMPP消息,通过session向client发送。4注册Client在与服务器建立connection后,首先会提交注册任务,在Androidpn项目中,用户注册是采用UUID(通用唯一标识码)来实现的,其每次登录都会利用这个UUID.randomUUID()来产生一个用户名和密码,而且不会重复。注册方法根据Server的格式要求组装注册消息,发送到服务器,同时使用在connection中添加监

8、听,来获取

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。