- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
即时通底层协议技术文档
广东友文信息科技有限公司 内部学习资料
基于 XMPP 协议的 Android 即时通信
实例:社交软件聊天工具
设计基于开源的XMPP 即时通信协议,采用C /S 体系结构,通过GPRS 无线网络用
TCP 协议连接到服务器,以架设开源的Openfire 服务器作为即时通讯平台。
系统主要由以下部分组成:一是服务器,负责管理发出的连接或者与其他实体的会话,
接收或转发XML(ExtensibleMarkup Language)流元素给授权的客户端、服务器等;二是客户
终端,它与服务器相连,通过XMPP 获得由服务器或任何其它相关的服务所提供的全部功
能;三是协议网关,完成XMPP 协议传输的信息与外部消息系统可识别信息间的翻译;再
就是XMPP 网络。实现各个服务器、客户端间的连接。系统采用客户端(Client) /服务端(Server)
架构体系结构。
客户端:
客户端基于Android 平台进行开发。负责初始化通信过程,进行即时通信时,由客户
端负责向服务器发起创建连接请求。系统通过GPRS 无线网络与Internet 网络建立连接,通
过服务器实现与Android 客户端的即时通信脚。
服务器端:
服务器端则采用Openfire 作为服务器。允许多个客户端同时登录并且并发的连接到一
个服务器上。服务器对每个客户端的连接进行认证,对认证通过的客户端创建会话,客户端
与服务器端之间的通信就在该会话的上下文中进行。
1.1 服务器端设计(这块几乎可以说是有成品了。不用多纠结)
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 平台自身所
带的SQLite 数据库中,多媒体文件和图片文件存储在Android 平台虚拟文件存储设备SD
Card 中。
通讯模块负责与服务器建立通讯旧。通过创建3 个线程来进行处理。分别负责消息的
发送、接收和心跳信息的发送;解析模块主要用来解析XML 数据流。根据解析元素不同类
型封装成不同的数据对象:数据模块定义整个客户端中大部分的数据类型和对象;应用模块
包括即时通信、图片浏览和音乐播放。是客户端和用户交流的接口;加密模块对发送和接收
的消息进行加解密。以确保通讯数据的安全。
系统的客户端分为5 大模块进行设计开发,如图2 所示。
通讯模块负责与服务器建立通讯旧。通过创建3 个线程来进行处理。分别负责消息的
发送、接收和心跳信息的发送;解析模块主要用来解析XML 数据流。根据解析元素不同类
型封装成不同的数据对象:数据模块定义整个客户端中大部分的数据类型和对象;应用模块
包括即时通信、图片浏览和音乐播放。是客户端和用户交流的接口;加密模块对发送和接收
的消息进行加解密。以确保通讯数据的安全。
加密(首先将二进制码转换成BASE64 码,在转换成BASE64 码之后,再进行MD5 加密,)
文档评论(0)