欢迎来到天天文库
浏览记录
ID:20903432
大小:57.00 KB
页数:7页
时间:2018-10-17
《即时通讯技术调研》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、即时通讯技术调研一、解决方案0前主流方案大都采用基于XMPP协议的即时通讯技术。也有基于MQTT消息协议的即时通讯技术。由于MQTT消息协议被提出时间较短,而且需要火量二次开发,所以不做详解。而XMPP协议是自由、开放、公开的,并且易于了解。而且在客户端、服务器、组件、源码库等方面,都己经各自有多种实现。二、XMPP可扩展通讯和表示协议(XMPP)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。XMPP以jabber协议为基础,而jabber是即吋通讯中常用的开放式协议。XMPP中定义了三个角色,客户端,服务器
2、,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。XMPP的特性:1.XMPP协议是公开的。2.XMPP协议具有良好的扩展性。在XMPP巾,即时消息和到场信息都是基于XML的结构化信息,这些信息以XML节(XMLStanza)的形式在通信实体间交换。XMPP发挥了XML结构化数据的通用传输层的作用,它将出席和上卞文敏感信
3、息嵌入到XML结构化数据中,从而使数据以极高的效率传送给最合适的资源。基于XML建立起來的应用具有良好的语义完整性和扩展性。1.分布式的网络架构。XMPP协议都是基于Client/server架构,但是XMPP协议本身并没有这样的限制。网络的架构和电子邮件十分相似,但没有结合任何特定的网络架构,适用范围非常广泛。2.XMPP具有很好的弹性。XMPP除了可用在即时通信的应用程序,还能用在网络管理、内容供稿、协同工具、档案共享、游戏、远端系统监控等。3.安全性。XMPP在Client-to-Server通信,和Server-to-Server通
4、信中都使用TLS(TransportLayerSecurity)协议作为通信通道的加密方法,保证通信的安全。任何XMPP服务器可以独立于公众XMPP网络(例如在企业内部网络中),而使用SASL及TLS等技术更加增强了通信的安全性。三、XMPP实现1.基于XMPP协议的客户端XMPP系统的一个设计标准是必须支持简单的客户端。事实上,XMPP系统架构对客户端只有很少的几个限制。一个XMPP客户端必须支持的功能有:1.通过TCP套接字与XMPP服务器进行通信;2.解析组织好的XML信息包;3.理解消息数据类型。1.基于XMPP协议的服务器XMPP
5、服务器遵循两个主要法则:1.监听客户端连接,并直接与客户端应用程序通信;2.与其他XMPP服务器通信;XMPP开源服务器一般被设计成模块化,巾各个不同的代码包构成,这些代码包分别处理Session管理、用户和服务器之间的通信、服务器之间的通信、DNS(DomainNameSystem)转换、存储用户的个人信息和朋友名单、保留用户在下线时收到的信息、用户注册、用户的身份和权限认证、根据用户的要求过滤信息和系统记录等。另外,月艮务器可以通过附加服务来进行扩展,如完整的安全策略,允许服务器组件的连接或客户端选择,通向其他消息系统的网关。3.XMP
6、P网关XMPP突出的特点是可以和其他即时通信系统交换信息和用户在线状况。由于协议不同,XMPP和其他系统交换信息必须通过协议的转换来实现,目前几种主流即时通信协议都没有公开,所以XMPP月艮务器本身并没存实现和其他协议的转换,但它的架构允许转换的实现。实现这个特殊功能的服务端在XMPP架构里叫做网关(gateway)。目前,XMPP实现了和AIM、ICQ、IRC、MSNMassager、RSS0.9和YahooMassager的协议转换。由于网关的存在,XMPP架构事实上兼容所有其他即时通信网络,这无疑大大提高了XMPP的灵活性和可扩展性。
7、四.XMPP的形式1、XMPP地址格式一个实体在XMPP网络结构中被称为一个接点,它有唯一的标示符jabberidentifier(JID),即实体地址,用来表示一个jabber用户,但是也可以表示其:他内容,例如一个聊天室.一个有效的」ID包括一系列元素:(1)域名(domainidentifier);(2)节点(nodeidentifier);⑶源(resourceidentifier).它的格式是node@domain/resource,node@domain,类似电子邮件的地址格式.domain用来表示接点不同的设备或位置,这个是可
8、选的,例如a在Serverl上注册了一个用户,用户名为doom,那么a的jID就是doom@serverl,在发送消息时,指明doom@serverl就可以了,resource可
此文档下载收益归作者所有