文档介绍:广东友文信息科技有限公司内部学习资料基于XMPP协议的Android即时通信实例:社交软件聊天工具设计基于开源的XMPP即时通信协议,采用C/S体系结构,通过GPRS无线网络用 TCP协议连接到服务器,以架设开源的Openfire服务器作为即时通讯平台。系统主要由以下部分组成:一是服务器,负责管理发出的连接或者与其他实体的会话, 接收或转发XML(ExtensibleMarkup Language)流元素给授权的客户端、服务器等;二是客户终端,它与服务器相连,通过XMPP获得由服务器或任何其它相关的服务所提供的全部功能;三是协议网关,完成XMPP协议传输的信息与外部消息系统可识别信息间的翻译;再就是XMPP网络。实现各个服务器、客户端间的连接。系统采用客户端(Client)/服务端(Server) 架构体系结构。客户端: 客户端基于Android平台进行开发。负责初始化通信过程,进行即时通信时,由客户端负责向服务器发起创建连接请求。网络建立连接,通过服务器实现与Android客户端的即时通信脚。服务器端: 服务器端则采用Openfire作为服务器。允许多个客户端同时登录并且并发的连接到一个服务器上。服务器对每个客户端的连接进行认证,对认证通过的客户端创建会话,客户端与服务器端之间的通信就在该会话的上下文中进行。 (这块几乎可以说是有成品了。不用多纠结) androidpn服务器端是java语言实现的,基于openfire开源工程,Web部分采用的是 spring框架,这一点与openfire是不同的。Androidpn服务器包含两个部分,一个是监听特定端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻量级的HTTP 服务器,负责接收用户的Web请求。主要的四个组成部分,分别是SessionManager,Auth Manager,PresenceManager 以及Notification Manager。SessionManager负责管理客户端与服务器之间的会话,Auth 广东友文信息科技有限公司内部学习资料 Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态, NotificationManager负责实现服务器向客户端推送消息功能。系统客户端基于Android手机平台。采用XMPP作为即时通讯协议。XMPP是基于XML, 实现任意两个网络终端准实时的交换结构化信息的通信协议。采用Android平台提供的XML 解析包对XML进行解析。由于应用活动都运行于主线程。故用多线程技术来解决系统通讯问题。,多媒体文件和图片文件存储在Android平台虚拟文件存储设备SD Card中。通讯模块负责与服务器建立通讯旧。通过创建3个线程来进行处理。分别负责消息的发送、接收和心跳信息的发送;解析模块主要用来解析XML数据流。根据解析元素不同类型封装成不同的数据对象:数据模块定义整个客户端中大部分的数据类型和对象;应用模块包括即时通信、图片浏览和音乐播放。是客户端和用户交流的接口;加密