好文档 - 专业文书写作范文服务资料分享网站

基于XMPP的企业级即时通信系统的研究与实现 - 图文 

天下 分享 时间: 加入收藏 我要投稿 点赞

武汉理.1:人’≯硕十。≯f妒论文层纠成:TL。SiLj丈fJJ、汶(TLSRecord)和TLS握下协议(TLSHandshake)。较低的层为TLSiL二丧坍议,位于某个可谨的f专输协议(例如TCP)上面。其协议各jJ电用中的…!呼7,j:TCP~TLS—SASL—XMPP,TCP是传输控制协议,TLS是1之输层安今=m议,SASL是简单认证和安令层阱议,以上所列协议根据各自不同的功能,舀:系统。火现中处于不同的层级f博II阳I。基本IM协i文.fll:定义了基本的即时通信系统所应该支持的协议组,不fr司的协议代表了不ffd的J力能,这些功能的扩展是基FXMPP协议良好的扩展性能的,任何一项功能的扩j陡鄙有其固定的规范,这止电足在协议中规定好的,如表2一l所示1201121]:表2—1基本IM协议组协议脱范XMPP核,亡、协。议XMPP需求级别必需实现的必需实现的必需实现的推荐实现的对客户端不推荐实现推荐实现的对客户端必需实现的IM伪、议服务发现阱议带内泣删协议出错条f,}f映射实体能力协议非SASL认iJj{协议对服务器端推荐实现的;中级IM协议组:定义了系统中级应用所应该支持的协议组,就是在基本的通信系统中添加了多用户聊天,文件传输等功能,如表2.2所示:表2—1中级IM协议组协议规范多jfj户聊天协议XHTML—IM协议文件传输协议实体能力协议需求级别必需实现的必需实现的必需实现的必需实现的基本IM协议组协议必需实现的须注意的是,表2.2中的协议仅应川于客户端(也即,它们并对服务器引入新的要求)。另外,这些协议有各自依赖的协议1231124l2.2.3地址空间一个实体可以是任何一个被认为是一个网络端点,而且它是通过XMPP协议进行相互问通信的。这些实体都有一个具有唯一性的地址,并符合规范要求6武汉理j二人学硕士学何论文的格式,一个XMPP实体的地址被称为JabberIdentifier或JID,其作川类似于Ⅲ地址。一个合法的JID包括一组排列好的元素,包括域名,节点名,和资源名,其格式为:jid=[node”@”]domain[¨/”resource]㈣【26】域名(domainidentifier)是一个主要的元素并且是JID中唯一必需的元素,一个纯粹的域名或IP地址也是一个合法的JID,它通常代表网络的网关或者主服务器,其它实体通过连接它来实现XML转发和数据管理功能【261。节点名(nodeidentifier)是一个可选的第二元素,放在域名之前并用符lp@”分开。它通常表示一个向服务器或网关请求和使用网络服务的实体(比如‘个客户端),当然它也能够表示其他的实体(比如在多用户聊天系统中的一个房fijJ)。节点名所代表的实体,依赖于一个特定的域名【26I。资源名(resourceidentifier)是一个可选的第三元素,它放在域名的后面并由符号”/”分开。资源名可以跟在<node@domain>后面也可以跟在<domain>后面。它通常表示一个特定的会话,连接或者一个附属于某个实体的对象,比如多用户聊天室中的一个参加者。对于服务器和和其他客户端来说,资源名是不透明的【26j。所有JID都是基于上述的结构。类似<user@host/resource>这种结构,最常用来标识一个即时消息用户,这个用户所连接的服务器,以及这个用户用于连接的资源(比如某一类型的客户端软件,QQ、MSN等等)。2.2.4XMPP协议的命名空间iabber:iq:private一私有数据存储,用于本地用,、私人设置信息,比如用户备注等jabber:iq:conferenee-----般会议,用于多个用户之l'HJ的信息共享jabber:x:encrypted--)J[1密的消息,用于发送加密信息iabber:x:expire---消息终止iabber:iq:time---客户端时间jabber:iq:auth--简单用户认证,~般用于服务器之问或者服务器和客户端的认证iabber:x:roster---内部的花名册条目jabber:x:signed--标记的在线状态jabber:iq:search--用户数据库查询,用于向服务器端发送查询请求jabber:iq:register---注册请求,用于用户注册相关信息。jabber:iq:roster---花名册(好友名单)管理,用于企业的部门设置或者是用户组设置jabber:x:conference---会议邀请,用于向参加会议用户发送开会通知iabber:x:event--消息事件vcard.temr临时的vCard,用于设置用户的头像以及昵称等信息【26】7武汉理|J.大学硕十学位论文2.2.5XMPP协议消息格式定义即时通信系统的各个实体之间的通信是以XML节和XML流的形式出现的,不仅可以进行简单的文本交流,也可以携带各种复杂的数据和文件,这一特性决定了基于XMPP协议的即时通信系统的客户端和服务器端摆脱了语言的限制,只需要能对XML语言进行解析就可以了。XML流的定义:一个XML流是一个类似于容器的流,其中包含了两个实体之间通过网络发送的XML元素。一个XML流是由一个XML打开标签<stream>开始,流的结尾则是以一个XML关闭标签</stream>结束。在流的丌始到结束之问,初始化它的实体可以通过流发送大量的XML元素,用于流的交互和通信,最终整个XML流是一个符合XML规范的XML文本【25】。XML节的定义:一个XML节是一个XMPP实体通过XML流向另一个XMPP实体发送的XML报文中的一个节点。一个XML节存在于根元素<stream>的下层,任何XML节都是从一个XML流的下一级的一个打开标签开始,到对应的关闭标签,每个XML节代表了不同的信息实现了不同的功能。在这里定义的XML节仅限于<message/>,<presence/>矛1]<iq/>元素。XMPP协议包括3个顶层XML元素B61<presence>此元素用于确定用户的订阅状态,可以查询、询问好友的在线状念,同时也可以发布自己的在线状态如下所示:<presence>from=’chenwu@192.168.0.5/msn’to=’wangjun@192.168.0.5/msll’type=‘probe’></presence><presence>元素可以取下面几种值【27】【28】:probe:用于服务器向客户端查询订阅状态,相当于一个“探针”subscribe:请求订阅别人,即请求加对方为好友subscribed:同意被别人订阅,也就是确认被对方加为好友unsubscfibe:取消订阅别人,请求删除某好友unsubscribed:拒绝被别人订阅,即拒绝对方的添加请求<message>:用于在两个XMPP用户之间发送信息,其中包含的元素规定了消息的源节点、目的节点、发送的形式和信息的内容,如果用户在线服务器立即转武汉珊I:人‘学硕r7:f一论文发;否则服务器就存储。to:标识消息的接收方,一般用JID标示from:指发送方的名字或标示(id),一般用JID』=,j、,J:。text:此元素包含了要提交给目标用户的信息,址纯文本信息。type:是发送的消息的类型(群发或单发),如果怂“groupchat”则“to”属性中只能添服务器的JID(多用户聊天中用到这种类1f{!),意味着是群发给日的服务器下的所有用户。如果是“chat”则“to”属性可以j划J}{务器也可以填客尸|端的JID,表示只同某一个用户聊天。结构如下所示:<messageto=’wangjun@192.168.0.5/rosa’type=’chat’><body>你好,在忙吗</body></message><iq>此元素管理XMPP服务器上任何两个用,’-I’日J的转换,允许他们通过相应的XML格式的查询和响应,比如:查询用户的用户名、密码等信息,设置自己的用户名和密码等<iq>主要的属性是type。包括:get:获取当前域值。set:设置或替换get查询的值。result:说明成功的l蛔应了先前的查询。error:查询和响应中出现的错误。结构如下所示:<iqfrom=’wangjun@192.168.0.5/msn’id=’1364564666’type=’result'>2.3XMPP核心协议2.3.1用户注册流程步骤1:客户端向服务器发送注册请求,iabber:iq:register命名空阳J标示了这一XML节的作用,是服务器端确定其功能模块的依据。<iqtype=’get’id=’registerl’><query</iq>xmlns=tjabber:iq:register’/>步骤2:服务器向客户端返回需注册的字段:用户名、密码和邮箱地址,表9武汉理下大学硕士学位论文示服务器端需要了解用户的上述信息。<iqtype='result’id=’registerl’><queryxmlns='jabber:iq:register'><instructions>Chooseausernameandpasswordforusewiththisservice.Pleasealsoprovideyouremailaddress.</instructions><username/><password/><email/></query></iq>步骤3:客户端向服务器发送注册字段对应的值,客户端输入相关信息后,确认发送往服务器端,服务器端接收后会做相应的处理。<iqtype=rSet’id=’register2’><queryxmlns=『:jabber:iq:register'><usemame>wangjun</usemame><password>123456</password><email>wangjun@163.com</email></query></iq>步骤4:服务器返回注册成功信息,注册成功后,服务器返回成功信息,以便用户知道注册成功f30】f3l】。<iqtype=’result’id=’register2’/>步骤1:客户端初始化流给服务器,以便能得到服务器的应答,从而确认咳<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’to=’XMPPExample.corn’version=’1.0’>步骤2:服务器返回一个流标签给客户端作为应答,以表示目的服务器可用。<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’id=’c2sl23’from=’XMPPExample.tom’version=’1.0’>102.3.2用户登录流程服务器是否可用。

基于XMPP的企业级即时通信系统的研究与实现 - 图文 

武汉理.1:人’≯硕十。≯f妒论文层纠成:TL。SiLj丈fJJ、汶(TLSRecord)和TLS握下协议(TLSHandshake)。较低的层为TLSiL二丧坍议,位于某个可谨的f专输协议(例如TCP)上面。其协议各jJ电用中的…!呼7,j:TCP~TLS—SASL—XMPP,TCP是传输控制协议,TLS是1之输层安今=m议,SASL是简单认证和安令层阱议,以上所列协议根据各自不同的功能,
推荐度:
点击下载文档文档为doc格式
1fidr8cvba7dd7d92wrv
领取福利

微信扫码领取福利

微信扫码分享