基于xmpp协议的低传输负载的即时通信方法及其系统的制作方法

文档序号:7699247阅读:162来源:国知局
专利名称:基于xmpp协议的低传输负载的即时通信方法及其系统的制作方法
技术领域
本发明涉及一种即时通信方法,尤其是指用于网络带宽有限的通信系统 中,基于可扩展消息在线协议(Extensible Messaging and Presence Protocol , XMPP)的低传输负载的即时通信方法及其系统。
背景技术
随着互联网的迅速发展,即时通信技术是继电子邮件和万维网之后的第 三大互联网应用,所述的即时通信(Instant Messaging,简称IM)是一种 实时的互联网交流方式,如图2所示为系统构成图,其中IM (Instant Messaging)服务器01为实现了 XMPP及其扩展协议的服务器,ME (Mobile Equipment)并1和ME井2为连接到IM服务器的参与聊天的用户手机终端。目前 的即时通信的方式是采用 一种在XML基础上开发的一组即时通信协议XMPP, 该XMPP协议是基于XML协议开发出的,XMPP协议继承了 XML灵活的可扩展性, 使得即时消息传输可以跨越不同平台、不同IM系统,承载任何结构的数据。 该XMPP协议符合IMP—REQS标准,即满足IMP—REQS对客户端和服务器端的功 能要求。XMPP核心协议由RFC 3920和RFC 3921组成,包含了一系列扩展 协i义(XMPP Extension Protocols, XEPs )。扩展协i义XEP-0045定义了一 种多用户聊天机制,而XEP-0077定义了一种注册机制,XEP-0055定义了一种 搜索机制。运用XMPP协议实现聊天室的代表性产品有基于XMPP协议实现的 IM月l务器openf ire以及客户端寿欠件spark。
参考图1以及图2所示,图1为现有技术中基于XMPP及其扩展协议的 即时通信过程的信息交互流程图,该附图是对即时通信过程中的即时聊天过程中对消息处理过程的描述;
首先,用户发送指令给手机客户端程序,例如查询即时聊天的房间列表,
执行以下步骤
步骤IOI、手机客户端根据用户指令构建XMPP消息;步骤102、手机客 户端程序向IM服务器发送XMPP消息;步骤103、通信系统中的IM服务器解 析接收到的XMPP消息;并在步骤104中由IM服务器根据所接收的XMPP消 息的内容执行指令;步骤105、所述IM服务器生成应答XMPP消息;并在步 骤106中,由所述IM服务器将应答XMPP消息发送给手机客户端;在步骤107 中,所述手机客户端解析接收到的XMPP消息,并在步骤108中由手机客户 端根据XMPP消息的内容执行指令;最后,手机客户端程序将处理结果展示 给用户,例如展示获得的房间列表等即时通信过程。
在无线通信等具有网络带宽和流量限制的环境下,这些产品没有针对流 量和效率问题进行处理,并且由于XML数据透明的缺陷,XMPP在使用的过程中, 还需要努力克服它本身诸如安全方面的缺点,因此在具有网络带宽和流量限 制的应用场景下,数据传输效率很低。

发明内容
本发明的目的是提供一种基于XMPP协议的低传输负载的即时通信方法 及其系统,对XMPP协议及其扩展协议的消息内容进行了扩充,使多人聊天室 的查询、创建、展示和搜索更符合人性化,并且针对具有网络带宽和流量限 制的应用场景进行改进,减少了网络流量,提高了数据传输的效率。
本发明的目的是这样实现的
一种基于XMPP协议的低传输负载的即时通信方法,包括 手机客户端根据输入的用户指令生成可扩展消息在线协议(XMPP )消息; 压缩所生成的XMPP消息并按照静态字典内容进行编码; 发送编码后的消息经网关发送至即时通信服务器;所述即时通信服务器按照静态字典内容进行解码并解析获得用户的指
令信息;
根据所述用户的指令信息生成应答消息并按照静态字典内容压缩该应
答消息发送至所述手机客户端;
所述手机客户端按照对应的编码方式解码、解析获得应答消息并执行该 指令;
所述手机客户端呈现所述的执行结果。
优选的,所述的消息服务器接收到所述手机客户端发出的消息后根据静 态字典内容进行解码,若在解码过程中发现错误,按照XMPP协议及其扩展 协议中的出错消息格式将出错信息压缩后返回给所述手机客户端。
优选的,所述手机客户端在对所生成的XMPP消息压缩时,是基于XMPP 及其扩展协议中的消息包含固定内容的标签(TAG ),按照WBXML协议将所述
固定内容的标签依照静态字典进行字节级编码。
优选的,所述手机客户端根据XEP-0045协议、根据手机客户端的属性 制定即时通信中的定制房间列表的长度,呈现所述执行结果时,在即时通信 服务器返回的执行结果中的房间摘要信息中,包括服务器上房间数量、房间 是否公开、房间是否私密的信息。
优选的,所述手机客户端在即时通信中,用户指令可为查询聊天房间列 表的个性化设置及房间摘要信息,包括
配置所述手机客户端对返回房间列表的长度,分别设置起始索引和结束 索引值;
用户发起查询房间列表指令,手机客户端根据用户的配置信息构建查询房间列表消息并对其进行压缩传输至所述即时通信服务器;
所述即时通信服务器接收到用户查询房间列表的请求后,检查已有房间 列表长度,将用户指定的索引范围内的房间摘要信息构建为应答消息,压缩 后传输给用户手机客户端,其中,所述即时通信服务器对房间列表的应答消
息中包含了表征服务器上全部房间数目的字段;
若所述即时通信服务器中的房间列表与用户指定的索引范围有部分交 集则将该部分交集结果传输给用户手机客户端;
所述手机客户端接收到所述房间列表的应答消息后,将其解压并展示其 内容,若解压过程出错,则重新向所述即时通信服务器请求房间列表,并给 用户适当提示。
另外,本发明还提出 一种基于XMPP协议的低传输负载的即时通信系统, 包括手机客户端,网关以及即时通信服务器,所述手机客户端通过所述网关 与所述即时通信服务器进行即时通信,其特征在于,所述手机客户端包括
指令输入单元,用于输入用户指令;
消息生成单元,用于根据所述指令输入单元所输入的用户指令生成可扩 展消息在线协议(XMPP )消息;
消息压缩单元,用于压缩所述消息生成单元生成的XMPP消息并按照静态 字典内容进4亍编码;
消息收发单元,用于通过所述网关将所述消息压缩单元的消息发送至即 时通信服务器,并接收所述即时通信服务器发送来的消息;
消息解析单元,用于接收所述消息收发单元传递的来自即时通信服务器 的消息并按照静态字典内容进行解码并解析应答消息;
显示单元,用于呈现所述的执行结果;
所述即时通信服务器包括
通信单元,用于与所述手才几客户端通信;信息解析单元,用于接收通信单元传递的信息并按照静态字典内容进行
解码并解析获得用户的指令信息;
应答消息生成单元,用于根据所述信息解析单元解析获得的指令信息生 成应答消息并按照静态字典内容压缩该应答消息发送至所述手机客户端。
优选的,所述手机客户端还包括信息配置单元,所述手机客户端通过所
述指令输入单元根据XEP-0045协议、根据手机客户端的属性制定即时通信中 的定制房间列表的长度,分别设置起始索引和结束索引值。
优选的,所述手机客户端的属性为手机的带宽以及处理能力。
本发明的技术方案可以产生如下有益技术效果
1、 本发明在IM服务器端与手机等有网络带宽和流量限制的终端交互的 过程中,对传输数据进行压缩和解压,降低消息传输对带宽的压力,从而优 化XMPP即时通信的岁支果;
2、 本发明对XEP-0045扩展协议进行完善,基于XMPP及其扩展协议的 即时通信系统,对XMPP及其扩展协议进行了适当扩充,实现了用户对查询 房间列表以及消息中房间数量的个性化设置,丰富了房间列表中房间描述信 息的内容,从而改善了用户体验;
3、 在消息传输过程中,采用基于WBXML协议对消息进行压缩和解压的 方法,有效降低了传输负载,减少了网络流量,显著提高了本发明对带宽有 限、流量拥挤的无线网络的适应性。


图1为现有技术中XMPP实现即时通信的流程图; 图2为现有技术中的即时通信系统结构图;图3为本发明的即时通信方法流程图4是本发明的增加压缩功能后即时通信方法的流程图5a是本发明的XMPP协议及其扩展协议的静态字典1的示例图;
图5b是本发明的XMPP协议及其扩展协议的静态字典2的示例图;
图6是本发明的系统结构示意图。
具体实施例方式
本发明为一种基于XMPP协议的低传输负载的即时通信方法,XMPP (可 扩展消息在线协议)是基于可扩展标记语言(XML)的协议,它用于即时消 息(IM)以及在线现场探测。这个协议可能最终允许因特网用户向因特网上 的其他任何人发送即时消息,即使其操作系统和浏览器不同。XMPP的前身是 Jabber, 一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际 标准组织完成了标准化工作。标准化的核心结果分为两部分核心的XML流 传输协议以及基于XML流传输的即时通讯扩展应用。XMPP的基本网络结构是 包括,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。 服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担 着与异构即时通信系统的互联互通,异构系统可以包括SMS (短信),MSN, ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之 上传输XMPP消息)。XMPP通过TCP传输的是与即时通讯相关的指令,消息的 形式为XML一各式的纯文本。
本发明就是基于XMPP及其扩展协议的即时聊天方法,适用于即时通信 领域,尤其适应于无线通信领域,本发明的方法采用基于WBXML协议的压缩 方法传输压缩后的消息,降低了对带宽的要求,减少了网络流量,对XMPP 及其扩展协议进行了必要的扩展,提高了用户个性化体验。
如图3所示为本发明的即时通信方法流程图,具体包括以下步骤:步骤301 ,手机客户端根据输入的用户指令生成可扩展消息在线协议
(XMPP)消息;
步骤302,压缩所生成的XMPP消息并按照静态字典内容进行编码;基于 XMPP及其扩展协议中的消息包含有大量的固定内容的标签(TAG),这些标签 以文本形式出现在消息的起至元素名称、属性域、属性值中,按照WBXML协 议的方法,在消息发送端(本实施例中以手机客户端为例),可以对这些固 定内容的标签依照静态字典进行字节级编码,以更少的字节表示原始标签, 从而达到消息压缩的目的;
步骤303,发送编码后的消息由网关发送至即时通信服务器;
步骤304,所述即时通信服务器按照静态字典内容进行解码并解析获得 用户的指令信息;在此步骤中是将编码后的消息依照同样的静态字典进行解 码,将其还原为原始消息;
步骤305,根据所述用户的指令信息生成应答消息并按照静态字典内容 压缩该应答消息发送至所述手机客户端;
步骤306,所述手机客户端按照对应的编码方式解码、解析获得应答消 息并执行该指令;
步骤307,所述手机客户端呈现所述的执行结果。
本实施例中所采用的数据压缩传输方式完全可以应用于对带宽和流量 受限的无线通信系统。在提高用户使用体验方面,本发明的方法对XEP-0045 协议中的查询房间列表的消息格式进行了扩充,使用户可以根据自己的带 宽、手机处理能力等客户端属性信息来定制房间列表的长度;在返回的房间 摘要信息中,增加了服务器上房间数量、房间是否公开、房间是否私密等对 用户比较重要的信息字段,达到了消耗较少的流量并且更大限度的满足用户 使用需要的目的。
如图4所示为采用本发明的压缩传输方法后的处理过程,用户提交了发
ii送指令后,处理流程如下
步骤401 、手机客户端程序根据用户指令生成XMPP消息;
步骤402、手机客户端程序根据静态字典将XMPP消息压缩为WBXML消息;
步骤403、手机客户端程序将WBXML消息发送给IM服务器;
步骤404、 IM服务器根据静态字典解压接收到的WBXML消息为XMPP消
自、'
W ,
步骤405、 步骤406、 步骤407、 步骤機、 步骤409、 步骤410、
IM服务器解析XMPP消息;
IM服务器根据XMPP消息的内容,执行指令;
IM服务器将处理结果构建为应答XMPP消息;
IM服务器将应答XMPP消息压缩为WBXML消息;
IM服务器将WBXML消息发送给用户手机客户端;
手机客户端根据静态字典解压接收到的WBXML消息为XMPP
消息;
步骤411、手机客户端解析XMPP消息; 步骤412 、手机客户端根据XMPP消息内容执行指令; 最后,手机终端将处理结果展示给用户,例如房间列表信息,其中房间 描述信息除了房间JID(JID是房间的ID)、房间名称外,还包括了必要的表
征房间是否公开、是否私密的信息。
下面以 一个示例性程序说明本发明查询房间列表的消息
<iq id='iql' to='mobile.bw30.com.cn' type='get'〉
<query xmlns='http:〃jabber.org/protocol/disco#items'〉
<x xmlns='jabber:x:data' type='submit'>
<field var='fromIndex'〉
<value>0</value>
</field〉
<field var='toIndex,>
<value>4</value>
</field〉
</x〉
</query>
</iq〉上述样例展示了对XMPP及其扩展协议进行必要扩充后的查询房间列表请
求消息,其中属性域fromlndex的值表示用户希望获取的房间列表的起始索 引值,属性域tolndex的值表示用户希望获取的房间列表的终止索引值。
下面再以一个示例性程序表示房间中的摘要消息
<iq from='mobile.bw30.com.cn' id='disco2'
to='qjh@mobile.bw30.com.cn' type='result'>
<query xmlns='http:〃jabber.org/protocol/disco#items'〉
<count〉5 </count〉
<itemjid='53@mobile.bw30.com.cn' name:';)匕京奧运'secret='0' common='l'/> <itemjid='64@mobile.bw30.com.cn' name=';lb^00r secret='0' common='0'/> <itemjid='56@mobile.bw30.com.cn' name一同学会'secret='0' common='OV> <item jid='52@mobile.bw30.com,cn' name一天下足J求'secret='0' common='l'/> <itemjid='55@mobile.bw30.com.cn' name:'篮球风云'secret='0' commonO
</query〉
</iq>
上述样例是IM服务器对用户查询房间列表的应答消息,其中域count 表示了 IM服务器上房间总数,每个房间的摘要信息中包含了原XMPP及其扩 展协议中的房间JID和房间名称的信息和本发明扩展的是否私密(secret) 和是否/>共(common)的信息。
在压缩传输方面,压缩后的WBXML格式的消息长度与原始XMPP消息相 比有了显著缩短,压缩比在50°/。左右。本发明有效降低了传输负载,减少了 网络流量,提高了对无线网络的适应能力。
图5a和图5b是本发明使用的标签静态字典,本发明使用的压缩算法将 这些标签进行字节级编码后,完成原始XMPP消息与WBXML消息之间的转换。 图5a中的TAG—TABLE-0和TAG—TABLE — I为XMPP及其扩展协议中使用的消息 元素的标签字符串集合,ATTR— START-TABLE为XMPP及其扩展协议中使用的 消息元素的各个属性的名称集合,ATTR_VALUE_TABLE —0及图5b中的 ATTR—VALUE—TABLE—1、 ATTR—VALUE_TABLE_2、 ATTR—VALUE_TABLE_3为XMPP 及其扩展协议中使用的消息元素的各个属性的取值集合。本发明的特征在于在方法中,实现了对XMPP消息的压缩和解压,降 低了对带宽和流量的消耗,使得基于XMPP协议的即时聊天系统更加适用于 带宽和流量受限的无线通信领域;对XEP-0045协议的消息内容进行了必要 的扩充,增强了用户的个性化设置,提高了用户体验。
在本发明的方案中,所述手机客户端在即时通信中,用户指令可为查询 聊天房间列表的个性化设置及房间摘要信息,包括
配置所述手机客户端对返回房间列表的长度,分别设置起始索引和结束 索引值;
用户发起查询房间列表指令,手机客户端根据用户的配置信息构建查询 房间列表消息并对其进行压缩传输至所述即时通信服务器;
所述即时通信服务器接收到用户查询房间列表的请求后,检查已有房间 列表长度,将用户指定的索引范围内的房间摘要信息构建为应答消息,压缩 后传输给用户手机客户端,其中,所述即时通信服务器对房间列表的应答消 息中包含了表征服务器上全部房间数目的字段;
若所述即时通信服务器中的房间列表与用户指定的索引范围有部分交 集则将该部分交集结果传输给用户手机客户端;
所述手机客户端接收到所述房间列表的应答消息后,将其解压并展示其 内容,若解压过程出错,则重新向所述即时通信服务器请求房间列表,并给 用户适当提示。
另外如图6所示,本发明还提出一种基于XMPP协议的低传输负载的即 时通信系统,包括手机客户端50,网关51以及即时通信服务器52,所述手 机客户端通过所述网关与所述即时通信服务器进行即时通信,所述手机客户 端50包4舌
指令输入单元501,用于输入用户指令;消息生成单元502,用于根据所 述指令输入单元所输入的用户指令生成可扩展消息在线协议(XMPP)消息;
14消息压缩单元503,用于压缩所述消息生成单元生成的XMPP消息并按照静态 字典内容进行编码;消息收发单元504,用于通过所述网关将所述消息压缩 单元的消息发送至即时通信服务器,并接收所述即时通信服务器发送来的消 息;消息解析单元505,用于接收收发单元504传递的来自即时通信服务器52 的消息并按照静态字典内容进行解码并解析应答消息;显示单元506,用于呈 现所述的执行结果。
所述即时通信服务器52包括通信单元521,用于与所述手机客户端通 信;信息解析单元522,用于接收通信单元传递的信息并按照静态字典内容 进行解码并解析获得用户的指令信息;应答消息生成单元523,用于根据所 述信息解析单元解析获得的指令信息生成应答消息并按照静态字典内容压 缩该应答消息发送至所述手才几客户端5 0 。
另外所述手机客户端还包括信息配置单元,所述手机客户端通过所述指 令输入单元根据XEP-0045协议根据手机客户端的属性制定即时通信中的定 制房间列表的长度。该系统的处理过程对应于上述的方法,因此在此不再进 行赘述。
虽然以上结合优选实施例对本发明进行了描述,但本领域的技术人员应 该理解,本发明所述的方法和系统并不限于具体实施方式
中所述的实施例, 在不背离由所附权利要求书限定的本发明精神和范围的情况下,可对本发明 作出各种》务改、增加、以及替换。
1权利要求
1、一种基于XMPP协议的低传输负载的即时通信方法,其特征在于,包括手机客户端根据输入的用户指令生成可扩展消息在线协议(XMPP)消息;压缩所生成的XMPP消息并按照静态字典内容进行编码;发送编码后的消息经网关发送至即时通信服务器;所述即时通信服务器按照静态字典内容进行解码并解析获得用户的指令信息;根据所述用户的指令信息生成应答消息并按照静态字典内容压缩该应答消息发送至所述手机客户端;所述手机客户端按照对应的编码方式解码、解析获得应答消息并执行该指令;所述手机客户端呈现所述的执行结果。
2、 根据权利要求1所述的方法,其特征在于,所述的消息服务器接收 到所述手机客户端发出的消息后根据静态字典内容进行解码,若在解码过程 中发现错误,按照XMPP协议及其扩展协议中的出错消息格式将出错信息压 缩后返回给所述手机客户端。
3、 根据权利要求1所述的方法,其特征在于,所述手机客户端在对所 生成的XMPP消息压缩时,是基于XMPP及其扩展协议中的消息包含固定内容 的标签(TAG ),按照WBXML协议将所述固定内容的标签依照静态字典进行字 节级编码。
4、 根据权利要求1所述的方法,其特征在于,所述手机客户端根据 XEP-0045协议、根据手机客户端的属性制定即时通信中的定制房间列表的长度,呈现所述执行结果时,在即时通信服务器返回的执行结果中的房间摘要 信息中,包括服务器上房间数量、房间是否公开、房间是否私密的信息。
5、 根据权利要求4所述的方法,其特征在于,所述手机客户端在即时 通信中,用户指令可为查询聊天房间列表的个性化设置及房间摘要信息,包括配置所述手机客户端对返回房间列表的长度,分别设置起始索引和结束 索引值;用户发起查询房间列表指令,手机客户端根据用户的配置信息构建查询 房间列表消息并对其进行压缩传输至所述即时通信服务器;所述即时通信服务器接收到用户查询房间列表的请求后,检查已有房间 列表长度,将用户指定的索引范围内的房间摘要信息构建为应答消息,压缩 后传输给用户手机客户端,其中,所述即时通信服务器对房间列表的应答消 息中包含了表征服务器上全部房间数目的字段;若所述即时通信服务器中的房间列表与用户指定的索引范围有部分交 集则将该部分交集结果传输给用户手机客户端;所述手机客户端接收到所述房间列表的应答消息后,将其解压并展示其 内容,若解压过程出错,则重新向所述即时通信服务器请求房间列表,并给 用户适当提示。
6、 一种基于XMPP协议的低传输负载的即时通信系统,包括手机客户端, 网关以及即时通信服务器,所述手机客户端通过所述网关与所述即时通信服 务器进行即时通信,其特征在于,所述手机客户端包括指令输入单元,用于输入用户指令;消息生成单元,用于根据所述指令输入单元所输入的用户指令生成可扩 展消息在线协议(XMPP )消息;消息压缩单元,用于压缩所述消息生成单元生成的XMPP消息并按照静态 字典内容进行编码;消息收发单元,用于通过所述网关将所述消息压缩单元的消息发送至即时通信服务器,并接收所述即时通信服务器发送来的消息;消息解析单元,用于接收所述消息收发单元传递的来自即时通信服务器 的消息并按照静态字典内容进行解码并解析应答消息;显示单元,用于呈现所述的执行结果;所述即时通信服务器包括通信单元,用于与所述手才几客户端通信;信息解析单元,用于接收通信单元传递的信息并按照静态字典内容进行 解码并解析获得用户的指令信息;应答消息生成单元,用于根据所述信息解析单元解析获得的指令信息生 成应答消息并按照静态字典内容压缩该应答消息发送至所述手机客户端。
7、 根据权利要求6所述的系统,其特征在于,所述手机客户端还包括信 息配置单元,所述手机客户端通过所述指令输入单元根据XEP-0045协议、根 据手机客户端的属性制定即时通信中的定制房间列表的长度,分别设置起始 索引和结束索引值。
8、 根据权利要求7所述的系统,其特征在于,所述手机客户端的属性为 手机的带宽以及处理能力。
全文摘要
本发明提出一种基于XMPP协议的低传输负载的即时通信方法,该方法包括以下步骤手机客户端根据输入的用户指令生成可扩展消息在线协议(XMPP)消息;压缩所生成的XMPP消息并按照静态字典内容进行编码;发送编码后的消息由网关发送至即时通信服务器;所述即时通信服务器按照静态字典内容进行解码并解析获得用户的指令信息;根据所述用户的指令信息生成应答消息并按照静态字典内容压缩该应答消息发送至所述手机客户端;所述手机客户端按照对应的编码方式解码、解析获得应答消息并执行该指令;所述手机客户端呈现所述的执行结果。本发明可降低消息传输对带宽的压力,从而优化XMPP即时通信的效果。
文档编号H04W4/12GK101500210SQ20091007997
公开日2009年8月5日 申请日期2009年3月16日 优先权日2009年3月16日
发明者伟 彭, 李建涛, 瞿继合 申请人:北京北纬点易信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1