CN101557399A - 一种xmpp协议传输数据压缩与解压缩方法 - Google Patents

一种xmpp协议传输数据压缩与解压缩方法 Download PDF

Info

Publication number
CN101557399A
CN101557399A CNA200910107362XA CN200910107362A CN101557399A CN 101557399 A CN101557399 A CN 101557399A CN A200910107362X A CNA200910107362X A CN A200910107362XA CN 200910107362 A CN200910107362 A CN 200910107362A CN 101557399 A CN101557399 A CN 101557399A
Authority
CN
China
Prior art keywords
buffer
value
node
coding
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA200910107362XA
Other languages
English (en)
Inventor
朱懋柱
张代军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN WINHI TECHNOLOGY DEVELOPMENT Co Ltd
Original Assignee
SHENZHEN WINHI TECHNOLOGY DEVELOPMENT Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENZHEN WINHI TECHNOLOGY DEVELOPMENT Co Ltd filed Critical SHENZHEN WINHI TECHNOLOGY DEVELOPMENT Co Ltd
Priority to CNA200910107362XA priority Critical patent/CN101557399A/zh
Publication of CN101557399A publication Critical patent/CN101557399A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种XMPP协议传输数据压缩方法,包括步骤:A1.将XMPP协议使用的字符串分别进行编码,所述编码组成编码表;A2.在传输XMPP协议即时通讯信息时,查询所述编码表,将所述即时通讯信息中的XMPP协议字符串由相应的所述编码替换,形成压缩即时通讯信息;A3.传输所述压缩即时通讯信息。

Description

一种XMPP协议传输数据压缩与解压缩方法
技术领域
本发明涉及网络通讯技术领域,具体涉及一种XMPP协议传输数据压缩与解压缩方法。
背景技术
XMPP协议(extensible Messaging and Presence Protocol,可扩展消息处理现场协议)是一种基于XML语言(extensible Markup Language,可扩展标记语言)的近端串流式即时通信协议。它将现场和上下文敏感信息标记嵌入到XML结构化数据中,使得人与人之间、应用系统之间以及人与应用系统之间能即时相互通信。XMPP协议已被批准为互联网即时通信协议标准。
XMPP协议最大的特点就是具有非常好的扩展性,通过节点的概念能够很容易的扩展协议,因为XMPP协议采用XML语言描述通讯信息,因此具备了XML良好扩展性的特点,然而也不可避免地具有相应的缺陷:XML语言本身是字符串形式的,因此XMPP协议通讯信息的数据量要比二进制通讯协议数据量大得多;另外在使用XMPP协议传输二进制数据时,需要将二进制数据转换为BASE64编码,而BASE64编码数据要比原来的二进制数据大得多。为了既能保持XMPP协议良好的扩展性,同时又能做到使即时通讯信息更加轻便,使二进制数据传输更加便捷,我们需要对使用XMPP协议的方法进行改进。
发明内容
本发明要解决的技术问题是提供一种XMPP协议传输数据压缩与解压缩方法,克服现有技术XMPP协议即时通讯信息数据量过大的缺陷以及在传输二进制数据时必须将二进制数据转换成BASE64编码的缺陷。
本发明为解决上述技术问题所采用的技术方案为:
一种XMPP协议传输数据压缩方法,包括步骤:
A1、将XMPP协议使用的字符串分别进行编码,所述编码组成编码表;
A2、在传输XMPP协议即时通讯信息时,查询所述编码表,将所述即时通讯信息中的XMPP协议字符串由相应的所述编码替换,形成压缩即时通讯信息;
A3、传输所述压缩即时通讯信息。
所述的XMPP协议传输数据压缩方法,其中所述编码的字宽设为一个字节。
所述的XMPP协议传输数据压缩方法,其中所述步骤A2包括步骤:
B1、设置传输缓存Buffer;
B2、将所述即时通讯信息中的协议头数据原样写入所述传输缓存Buffer;
B3、依次对所述即时通讯信息中的每个节点进行所述编码表的查询和所述编码的替换,并将替换后的压缩数据写入所述传输缓存Buffer;
B4、将所述即时通讯信息中的扩展数据长度字段的数值和扩展数据写入所述传输缓存Buffer。
所述的XMPP协议传输数据压缩方法,其中所述步骤B3包括步骤:
C1、在所述编码表中查询所述节点的节点名编码;
C2、如果存在节点名编码,设置所述节点的节点名类型的值为0,否则设置所述节点的节点名类型的值1,将节点名类型的值写入所述传输缓存Buffer;
C3、如果节点名类型的值为0,将节点名编码写入所述传输缓存Buffer;
C4、如果节点名类型的值为1,则先将节点名长度的值写入所述传输缓存Buffer,然后将节点名字符串写入所述传输缓存Buffer;
C5、统计所述节点的节点属性个数,将节点属性个数写入所述传输缓存Buffer,如果节点属性个数大于0,依次对每个节点属性进行所述编码表的查询和所述编码的替换,并将替换后的压缩数据写入所述传输缓存Buffer;
C6、统计所述节点的子节点个数,将子节点个数写入所述传输缓存Buffer;
C7、如果子节点个数大于0,依次对每个子节点进行所述编码表的查询和所述编码的替换,并将替换后的压缩数据写入所述传输缓存Buffer;
C8、将所述节点的数据长度的值写入所述传输缓存Buffer;
C9、将所述节点的数据写入所述传输缓存Buffer。
所述的XMPP协议传输数据压缩方法,其中所述步骤C5包括步骤:
D1、在所述编码表中查询所述节点属性的属性名编码,如果存在属性名编码,设置所述节点属性的属性名类型的值为0,否则设置所述节点属性的属性名类型的值为1,将属性名类型的值写入所述传输缓存Buffer;
D2、如果属性名类型的值为0,将属性名编码写入所述传输缓存Buffer,否则如果属性名类型的值为1,则先将属性名长度的值写入所述传输缓存Buffer,然后将属性名字符串写入所述传输缓存Buffer;
D3、在所述编码表中查询所述节点属性的属性值编码,如果存在属性值编码,设置所述节点属性的属性值类型的值为0,否则设置所述节点属性的属性值类型的值为1,将属性值类型的值写入所述传输缓存Buffer;
D4、如果属性值类型的值为0,将属性值编码写入所述传输缓存Buffer,否则如果属性值类型的值为1,则先将属性值长度的值写入所述传输缓存Buffer,然后将属性值字符串写入所述传输缓存Buffer。
所述的XMPP协议传输数据压缩方法,其中所述步骤C7包括步骤:执行步骤C1至C9。
一种XMPP协议传输数据解压缩方法,包括步骤:
E1、在接收所述压缩即时通讯信息的端点设置所述编码表;
E2、查询所述编码表,将所述压缩即时通讯信息中的所述编码由相应的XMPP协议字符串替换,形成所述即时通讯信息。
所述的XMPP协议传输数据解压缩方法,其中所述步骤E2包括步骤:
F1、设置接收缓存Buffer1;
F2、将所述压缩即时通讯信息中的协议头数据原样写入所述接收缓存Buffer1;
F3、依次对所述压缩即时通讯信息中的每个节点进行所述编码表的查询和相应的XMPP协议字符串的替换,并将替换后的XMPP协议字符串写入所述接收缓存Buffer1;
F4、将所述压缩即时通讯信息的扩展数据长度字段的数值和扩展数据写入所述接收缓存Buffer1。
所述的XMPP协议传输数据解压缩方法,其中包括步骤E3:调用XMPP协议解析器对所述即时通讯信息进行解析。
本发明的有益效果:由于XMPP协议即时通讯信息中绝大部分是通用的字符串,因此本发明采用对常用XMPP协议字符串进行编码,然后通过查询编码表对即时通讯信息进行压缩,这样就大大减少了XMPP协议即时通讯信息的数据量,并且本发明对XMPP协议进行扩展,增加了扩展数据长度字段和扩展数据字段,压缩即时通讯信息可以直接携带二进制数据而不用进行BASE64编码的转换,既减少了二进制数据到BASE64编码转换的资源消耗,也大大减少了相应的传输数据量,这样就大大提高了即时通讯的效率,本发明是XMPP协议应用的重大进步。
附图说明
本发明包括如下附图:
图1为本发明XMPP协议即时通讯信息协议头的数据结构示意图;
图2为本发明XMPP协议即时通讯信息中属性的数据结构示意图;
图3为本发明XMPP协议即时通讯信息中节点的数据结构示意图;
图4为本发明XMPP协议即时通讯信息数据结构示意图;
图5为本发明压缩后即时通讯信息的示意图;
图6为本发明应用XMPP协议传输数据压缩和解压缩方法的交互场景示意图。
具体实施方式
下面根据附图和实施例对本发明作进一步详细说明:
对XMPP协议进行充分分析后,可以总结出XMPP协议使用字符串的规律,比如请求节点名为iq,消息的节点名为message,等等,而且使用特殊字符串的节点名、命名空间、属性名是有限的,我们可以对这些有规律的字符串进行编码。
编码表的建立
编码表是XMPP协议即时通讯信息压缩和解压缩的关键。根据XMPP协议的特点,对XMPP协议中的常用字符串进行编码,根据整理,编码远不到256个,所以只要一个字节就可以实现XMPP协议中常用字符串的编码,而且还有剩余的编码供以后扩展,通过编码表代替不定长的字符串数据,大大减少数据量,根据XMPP协议的特点进行分类编码如下:
节点名编码表
  编码值   节点名   说明
  1   stream:stream   stream流的开始
  2   stream:error   流错误
  3   stream:features   流属性
  4   mechanisms   加密算法集合
  5   mechanism   加密节点
  6 iq   iq请求
  7   query   请求
  8   presence   出席节点
  9   message   消息
  10   subject   主题
  11   body   内容
  12   thread   线索
  13   domain   域
  14   item   一个项
  15   group   群
  16   show   显示
  17   status   状态
  18   priority   优先级
  19   gone   处理后
  20   internal-server-error   服务错误
  21   forbidden   禁止
  22   conflict   冲突
  23   error   错误
  24   active   活跃的
  25   default   默认
  26   value   值
  27   action   行为
  28   order   命令
  29   item-not-found   指定项没有找到
  30   bad-request   错误请求
  31   presence-out   离线
  32   service-unavailable   服务不存在
  33   identity   身份
  34   field   领域,局部
  35   feature   特色
  36   x   节点X
  37   password   密码
  38   username   用户名
  49   resource   资源
  40   registration-required   注册请求
  41   delay   延迟
  42   history   历史
  43   not-acceptable   不接受
  44   invite   邀请
  45   decline   踢人
  46   reason   原因
  47   continue   继续
  58   title   标题
  59   instructions   说明
  50   option   选择
  51 unique   唯一的
  52   destroy   消耗
  53   remove   删除
  54   text   文本
  55   defined-condition   定义条件
  56   xml-not-well-formed   xml格式错误
  57   escape-your-data   数据超界
  68   ClientVer   客户端版本
属性名编码表
  编码值   属性名   说明
  1   xmlns   命名空间
  2   type   类型
  3   id   编号
  4   from   来自
  5   to   发到...
  6   version   版本
  7   xmlns:stream   流命名空间
  8   xml:lang   xml的字符编码
  9   subscription   订阅
  10   jid   用户id
  11   name   名字
  12   ask   询问
  13   var   变量
  14   category   类别
  15   affiliation   关系
  16   role   角色
  17   code   代码
  18   not-authorized   没有验证
  19   stamp   标志
  20   maxstanzas   最大的节数
  21   seconds   秒数
  22   since   起点
  23   maxchars   最大字符
  24   nick   昵称
  25   label   标签
  26   xmlns:db   命名空间数据
属性值编码表
Figure A20091010736200141
Figure A20091010736200151
Figure A20091010736200161
压缩过程的实现
XML的描述符具有树形结构,除了对常用字符编码外,还需要对XML的格式进行定义。XML描述符中有一个或多个节点,其中每个节点都包含0个或多个属性和子节点,父子节点的类型是相同的,子节点的描述同父节点一样,节点的属性描述包含对属性名和属性值的描述。协议头数据压缩过程:
如图1所示,即时通讯信息协议头的数据结构是固定的,长度为三个整型变量长度,共12个字节,这个协议头为自定义协议头,做协议标识,第一个整型存储协议代码,其中第一个字节存储英文字母x的ASCII码,第二个字节存储英文字母m的ASCII码,第三、第四个字节存储英文字母p的ASCII码,第二个整型变量为版本号,为以后做版本兼容和识别处理,第三个整型变量为协议数据长度。
(1)首先申请传输缓存(Buffer);
(2)在传输缓存Buffer内写入协议代码;
(3)在传输缓存Buffer内写入协议版本;
(4)在传输缓存Buffer内写入协议数据长度。
属性压缩过程:
即时通讯信息中属性的数据结构如图2所示。
(1)在编码表中查询节点属性的属性值编码,如果存在属性值编码,设置节点属性的属性值类型的值为0,否则设置节点属性的属性值类型的值为1,将属性值类型的值写入传输缓存Buffer;
(2)如果属性名类型的值为0,将属性名编码写入传输缓存Buffer,否则如果属性名类型的值为1,则先将属性名长度的值写入传输缓存Buffer,然后将属性名字符串写入传输缓存Buffer;
(3)在编码表中查询节点属性的属性值编码,如果存在属性值编码,设置节点属性的属性值类型的值为0,否则设置节点属性的属性值类型的值为1,将属性值类型的值写入传输缓存Buffer;
(4)如果属性值类型的值为0,将属性值编码写入传输缓存Buffer,否则如果属性值类型的值为1,则先将属性值长度的值写入传输缓存Buffer,然后将属性值字符串写入传输缓存Buffer。
节点压缩过程:
即时通讯信息中节点的数据结构如图3所示。
(1)在编码表中查询节点的节点名编码;
(2)如果存在节点名编码,设置节点的节点名类型的值为0,否则设置节点的节点名类型的值1,将节点名类型的值写入传输缓存Buffer;
(3)如果节点名类型的值为0,将节点名编码写入传输缓存Buffer;
(4)如果节点名类型的值为1,则先将节点名长度的值写入传输缓存Buffer,然后将节点名字符串写入传输缓存Buffer;
(5)统计节点的节点属性个数,将节点属性个数写入传输缓存Buffer,如果节点属性个数大于0,依次对每个节点属性进行编码表的查询和编码的替换,并将替换后的压缩数据写入传输缓存Buffer;
(6)统计节点的子节点个数,将子节点个数写入传输缓存Buffer;
(7)如果子节点个数大于0,依次对每个子节点进行编码表的查询和编码的替换,并将替换后的压缩数据写入传输缓存Buffer;
(8)将节点的数据长度的值写入传输缓存Buffer;
(9)将节点的数据写入传输缓存Buffer。
整个即时通讯信息的数据结构如图4所示。
调用前面叙述的各个压缩过程来完成整个即时通讯信息的二进制数据序列化过程,最后将扩展数据长度写入传输缓存Buffer,如果长度不为0,则将扩展数据写入传输缓存Buffer,最后通过网络将传输缓存Buffer内的数据发送出去。
解压缩过程的实现
从网络底层接收到压缩的数据后将数据存入接收缓存RecvBuffer中,解压缩过程其实就是压缩一个反过程,就是把RecvBuffer中的二进制数据进行反序列化,把二进制数据解析成XML流的过程。
协议头数据解压缩过程:
(1)从RecvBuffer中读取协议代码;
(2)从RecvBuffer读取协议版本;
(3)从RecvBuffer读取协议数据长度;
(4)生成一个XML节点类型。
属性解压缩过程:
(1)从RecvBuffer读取属性名类型;
(2)如果是0(编码类型),从编码表中找到对应的属性名,否则读取属性名长度,读取属性名,假定属性名为type;
(3)从RecvBuffer读取属性值类型;
(4)如果是编码,则从编码字典中得到属性值,否则读取属性值长度,读取属性值,假定属性值为data;
(5)在当前的XML节点中添加一个属性名为type,值为data的属性。节点解压缩过程:
(1)从RecvBuffer读取节点名类型;
(2)如果是编码,则查询编码表得到真实的节点名,否则读取节点名的长度,然后直接读取节点名,假定节点名为nodename;
(3)在XML节点当前层次中加入一个节点名为nodename的节点。
(4)从RecvBuffer读取属性节点个数;
(5)如果个数不为0,循环调用属性解压缩过程来解压缩属性数据;
(6)从RecvBuffer读取子节点个数;
(7)如果子节点个数不为0,则循环调用节点解压缩过程来尽一步解压缩;
(8)从RecvBuffer读取节点数据长度;
(9)如果长度不为0,则读取节点数据。
整个协议数据的解压缩过程:
(1)从RecvBuffer读取协议头数据;
(2)从RecvBuffer读取节点个数;
(3)如果节点个数不为零,则循环调用节点解压缩过程;
(4)从RecvBuffer读取扩展数据长度;
(5)如果扩展数据长度不为零,则从RecvBuffer中读取扩展数据,如果为零则结束解压缩过程,得到XML格式节点数据和扩展数据。
对于即时通讯信息:
<iq><query xmlns=“jabberd:iq:admin”type=“get”><query/><iq/>,共有63个字符,其压缩后的数据格式如图5所示,压缩后字符数为52,除去协议头字符数12、扩展数据字符数8,XMPP协议数据本身为32个字符,这个协议数据比较小,所以整体数据上看不出压缩后的比率,但除去协议附加的消息外,XMPP协议的数据压缩将近50%(32/63*100%),当XMPP协议数据很大时,协议头和扩展数据占的比率就比较小,这样压缩比是比较高的。采取这样的编码后就可以在协议数据的扩展数据部分携带二进制数据,这样非常方便,因为在现实应用中携带二进制的需求是比较大的,现在的XMPP协议采用进行BASE64的方式来传输二进制,这样不仅使传输数据量增加,同时在发送前和接收后都需要对数据进行BASE64的编码和解码,这样效率是相当低的。
如图6所示是使用本发明XMPP协议传输数据压缩和解压缩方法的交互场景:
1、客户端A---->服务器A
(1)客户段A将XML节点(标准XMPP格式)进行压缩
(2)通过网络TCP/IP协议将数据发送到服务器A
(3)服务器A对数据进行解压,到得XML数据节点(标准的XMPP格式)。
2、服务器A---->客户端A
(1)XML节点数据进行压缩
(2)通过网络TCP/IP协议将数据发送客户端A
(3)协议解压成XML节点
3、客户端B---->服务器A
(1)XML节点通过标准XML解析器解析成字符串流
(2)通过网络TCP/IP协议将数据发送到服务器A
(3)服务器A标准XMPP协议网关将字符串流解析成XML节点
4、服务器A---->客户端B
(1)调用标准XMPP协议解析器将XML节点解析成字符串流
(2)通过网络TCP/IP协议将数据发送到客户端B
(3)通过标准XMPP协议解析器解析成XML节点
5、客户端A---->客户端D
(1)客户端A将XMPP标准的XML节点数据进行压缩
(2)通过网络TCP/IP协议将数据发送服务器A
(3)服务器A进行协议解压得到XML节点
(4)调用XMPP协议解析器解析成标准字符串流
(5)通过网络TCP/IP协议将数据发送到客户端D
(6)客户端D调用XMPP协议解析器解析成XML节点
6、客户端A---->路由器1---->客户端B
(1)客户端A将XMPP标准的XML节点数据进行压缩
(2)通过网络TCP/IP协议将数据发送路由器1
(3)路由器1进行协议解压得到XML节点
(4)路由器调用XMPP协议解析器解析成标准字符串流
(5)通过网络TCP/IP协议将数据发送到客户B
(6)客户端B调用XMPP标准协议解析器解析成XML节点
7、客户端B---->路由器1---->客户端A
(1)客户端B调用XMPP解析器将XML节点解析成字符串流
(2)通过网络TCP/IP协议将数据发送路由器1
(3)路由器1进行协议进行解析得到XML节点
(4)路由器1调用协议压缩模块将协议进行压缩
(5)通过网络TCP/IP协议将数据发送客户端A
(6)客户端A对协议进行解压得到XML节点
本领域技术人员不脱离本发明的实质和精神,可以有多种变形方案实现本发明,以上所述仅为本发明较佳可行的实施例而已,并非因此局限本发明的权利范围,凡运用本发明说明书及附图内容所作的等效结构变化,均包含于本发明的权利范围之内。

Claims (9)

1、一种XMPP协议传输数据压缩方法,其特征在于,包括步骤:
A1、将XMPP协议使用的字符串分别进行编码,所述编码组成编码表;
A2、在传输XMPP协议即时通讯信息时,查询所述编码表,将所述即时通讯信息中的XMPP协议字符串由相应的所述编码替换,形成压缩即时通讯信息;
A3、传输所述压缩即时通讯信息。
2、根据权利要求1所述的XMPP协议传输数据压缩方法,其特征在于:所述编码的字宽设为一个字节。
3、根据权利要求1所述的XMPP协议传输数据压缩方法,其特征在于,所述步骤A2包括步骤:
B1、设置传输缓存Buffer;
B2、将所述即时通讯信息中的协议头数据原样写入所述传输缓存Buffer;
B3、依次对所述即时通讯信息中的每个节点进行所述编码表的查询和所述编码的替换,并将替换后的压缩数据写入所述传输缓存Buffer;
B4、将所述即时通讯信息中的扩展数据长度字段的数值和扩展数据写入所述传输缓存Buffer。
4、根据权利要求3所述的XMPP协议传输数据压缩方法,其特征在于,所述步骤B3包括步骤:
C1、在所述编码表中查询所述节点的节点名编码;
C2、如果存在节点名编码,设置所述节点的节点名类型的值为0,否则设置所述节点的节点名类型的值1,将节点名类型的值写入所述传输缓存Buffer;
C3、如果节点名类型的值为0,将节点名编码写入所述传输缓存Buffer;
C4、如果节点名类型的值为1,则先将节点名长度的值写入所述传输缓存Buffer,然后将节点名字符串写入所述传输缓存Buffer;
C5、统计所述节点的节点属性个数,将节点属性个数写入所述传输缓存Buffer,如果节点属性个数大于0,依次对每个节点属性进行所述编码表的查询和所述编码的替换,并将替换后的压缩数据写入所述传输缓存Buffer;
C6、统计所述节点的子节点个数,将子节点个数写入所述传输缓存Buffer;
C7、如果子节点个数大于0,依次对每个子节点进行所述编码表的查询和所述编码的替换,并将替换后的压缩数据写入所述传输缓存Buffer;
C8、将所述节点的数据长度的值写入所述传输缓存Buffer;
C9、将所述节点的数据写入所述传输缓存Buffer。
5、根据权利要求4所述的XMPP协议传输数据压缩方法,其特征在于,所述步骤C5包括步骤:
D1、在所述编码表中查询所述节点属性的属性名编码,如果存在属性名编码,设置所述节点属性的属性名类型的值为0,否则设置所述节点属性的属性名类型的值为1,将属性名类型的值写入所述传输缓存Buffer;
D2、如果属性名类型的值为0,将属性名编码写入所述传输缓存Buffer,否则如果属性名类型的值为1,则先将属性名长度的值写入所述传输缓存Buffer,然后将属性名字符串写入所述传输缓存Buffer;
D3、在所述编码表中查询所述节点属性的属性值编码,如果存在属性值编码,设置所述节点属性的属性值类型的值为0,否则设置所述节点属性的属性值类型的值为1,将属性值类型的值写入所述传输缓存Buffer;
D4、如果属性值类型的值为0,将属性值编码写入所述传输缓存Buffer,否则如果属性值类型的值为1,则先将属性值长度的值写入所述传输缓存Buffer,然后将属性值字符串写入所述传输缓存Buffer。
6、根据权利要求4所述的XMPP协议传输数据压缩方法,其特征在于,所述步骤C7包括步骤:执行步骤C1至C9。
7、一种XMPP协议传输数据解压缩方法,其特征在于,包括步骤:
E1、在接收所述压缩即时通讯信息的端点设置所述编码表;
E2、查询所述编码表,将所述压缩即时通讯信息中的所述编码由相应的XMPP协议字符串替换,形成所述即时通讯信息。
8、根据权利要求7所述的XMPP协议传输数据解压缩方法,其特征在于,所述步骤E2包括步骤:
F1、设置接收缓存Buffer1;
F2、将所述压缩即时通讯信息中的协议头数据原样写入所述接收缓存Buffer1;
F3、依次对所述压缩即时通讯信息中的每个节点进行所述编码表的查询和相应的XMPP协议字符串的替换,并将替换后的XMPP协议字符串写入所述接收缓存Buffer1;
F4、将所述压缩即时通讯信息的扩展数据长度字段的数值和扩展数据写入所述接收缓存Buffer1。
9、根据权利要求7所述的XMPP协议传输数据解压缩方法,其特征在于,包括步骤E3:调用XMPP协议解析器对所述即时通讯信息进行解析。
CNA200910107362XA 2009-05-20 2009-05-20 一种xmpp协议传输数据压缩与解压缩方法 Pending CN101557399A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA200910107362XA CN101557399A (zh) 2009-05-20 2009-05-20 一种xmpp协议传输数据压缩与解压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA200910107362XA CN101557399A (zh) 2009-05-20 2009-05-20 一种xmpp协议传输数据压缩与解压缩方法

Publications (1)

Publication Number Publication Date
CN101557399A true CN101557399A (zh) 2009-10-14

Family

ID=41175344

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200910107362XA Pending CN101557399A (zh) 2009-05-20 2009-05-20 一种xmpp协议传输数据压缩与解压缩方法

Country Status (1)

Country Link
CN (1) CN101557399A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103442028A (zh) * 2013-07-24 2013-12-11 佳都新太科技股份有限公司 一种基于xmpp的移动应用数据推送方法
CN104104575A (zh) * 2013-04-03 2014-10-15 腾讯科技(深圳)有限公司 一种即时通讯群的通讯方法及系统
CN104216958A (zh) * 2014-08-20 2014-12-17 深圳市邦彦信息技术有限公司 基于结构化数据的传输方法及装置
CN104965892A (zh) * 2015-06-17 2015-10-07 重庆邮电大学 一种无线传感器网络中基于字典的xmpp压缩方法
CN105024923A (zh) * 2015-07-29 2015-11-04 北京梅泰诺通信技术股份有限公司 基于xmpp扩展消息的消息分类实现的方法及装置
CN105677809A (zh) * 2015-12-31 2016-06-15 广州华多网络科技有限公司 一种基于移动终端的中文词条索引压缩方法及移动终端
CN105915443A (zh) * 2016-06-15 2016-08-31 Tcl移动通信科技(宁波)有限公司 一种移动终端对即时通信信息的处理方法及系统
CN108476219A (zh) * 2016-01-13 2018-08-31 西门子股份公司 用于数据交换的方法和设备
CN109274720A (zh) * 2018-08-24 2019-01-25 网宿科技股份有限公司 一种传输数据的方法和系统
CN109683996A (zh) * 2018-12-20 2019-04-26 携程旅游网络技术(上海)有限公司 通信数据的传输方法及系统
CN109921875A (zh) * 2017-12-13 2019-06-21 中国电信股份有限公司 数据传输方法、系统及设备
CN112019518A (zh) * 2020-08-05 2020-12-01 杭州木链物联网科技有限公司 一种工控协议数据压缩方法、装置
WO2023130741A1 (zh) * 2022-01-10 2023-07-13 深圳智慧林网络科技有限公司 基于联合编码的数据传输方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003007614A2 (en) * 2001-07-13 2003-01-23 France Telecom Method for compressing a hierarchical tree, corresponding signal and method for decoding a signal.
CN1455901A (zh) * 2000-10-06 2003-11-12 佳能株式会社 Xml编码方案
CN1492322A (zh) * 2003-08-20 2004-04-28 放 黄 xml数据压缩和解压方法
CN1547326A (zh) * 2003-11-28 2004-11-17 北京大学 可扩展标记语言数据流压缩器及其压缩方法
CN1751442A (zh) * 2003-02-14 2006-03-22 捷讯研究有限公司 用于压缩以结构化定义语言表达的无线应用程序的系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1455901A (zh) * 2000-10-06 2003-11-12 佳能株式会社 Xml编码方案
WO2003007614A2 (en) * 2001-07-13 2003-01-23 France Telecom Method for compressing a hierarchical tree, corresponding signal and method for decoding a signal.
CN1751442A (zh) * 2003-02-14 2006-03-22 捷讯研究有限公司 用于压缩以结构化定义语言表达的无线应用程序的系统和方法
CN1492322A (zh) * 2003-08-20 2004-04-28 放 黄 xml数据压缩和解压方法
CN1547326A (zh) * 2003-11-28 2004-11-17 北京大学 可扩展标记语言数据流压缩器及其压缩方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104104575A (zh) * 2013-04-03 2014-10-15 腾讯科技(深圳)有限公司 一种即时通讯群的通讯方法及系统
CN104104575B (zh) * 2013-04-03 2019-01-29 腾讯科技(深圳)有限公司 一种即时通讯群的通讯方法及系统
CN103442028A (zh) * 2013-07-24 2013-12-11 佳都新太科技股份有限公司 一种基于xmpp的移动应用数据推送方法
CN104216958A (zh) * 2014-08-20 2014-12-17 深圳市邦彦信息技术有限公司 基于结构化数据的传输方法及装置
CN104216958B (zh) * 2014-08-20 2018-01-12 邦彦技术股份有限公司 基于结构化数据的传输方法及装置
CN104965892B (zh) * 2015-06-17 2018-08-14 重庆邮电大学 一种无线传感器网络中基于字典的xmpp压缩方法
CN104965892A (zh) * 2015-06-17 2015-10-07 重庆邮电大学 一种无线传感器网络中基于字典的xmpp压缩方法
CN105024923A (zh) * 2015-07-29 2015-11-04 北京梅泰诺通信技术股份有限公司 基于xmpp扩展消息的消息分类实现的方法及装置
CN105024923B (zh) * 2015-07-29 2018-05-15 北京梅泰诺通信技术股份有限公司 基于xmpp扩展消息的消息分类实现的方法及装置
CN105677809B (zh) * 2015-12-31 2019-06-28 广州华多网络科技有限公司 一种基于移动终端的中文词条索引压缩方法及移动终端
CN105677809A (zh) * 2015-12-31 2016-06-15 广州华多网络科技有限公司 一种基于移动终端的中文词条索引压缩方法及移动终端
CN108476219A (zh) * 2016-01-13 2018-08-31 西门子股份公司 用于数据交换的方法和设备
US11146610B2 (en) 2016-01-13 2021-10-12 Siemens Aktiengesellschaft Method and device for data exchange
CN108476219B (zh) * 2016-01-13 2021-11-09 西门子股份公司 用于数据交换的方法和设备
CN105915443A (zh) * 2016-06-15 2016-08-31 Tcl移动通信科技(宁波)有限公司 一种移动终端对即时通信信息的处理方法及系统
CN109921875A (zh) * 2017-12-13 2019-06-21 中国电信股份有限公司 数据传输方法、系统及设备
CN109274720A (zh) * 2018-08-24 2019-01-25 网宿科技股份有限公司 一种传输数据的方法和系统
CN109274720B (zh) * 2018-08-24 2022-04-22 网宿科技股份有限公司 一种传输数据的方法和系统
CN109683996A (zh) * 2018-12-20 2019-04-26 携程旅游网络技术(上海)有限公司 通信数据的传输方法及系统
CN112019518A (zh) * 2020-08-05 2020-12-01 杭州木链物联网科技有限公司 一种工控协议数据压缩方法、装置
WO2023130741A1 (zh) * 2022-01-10 2023-07-13 深圳智慧林网络科技有限公司 基于联合编码的数据传输方法及装置

Similar Documents

Publication Publication Date Title
CN101557399A (zh) 一种xmpp协议传输数据压缩与解压缩方法
US7043686B1 (en) Data compression apparatus, database system, data communication system, data compression method, storage medium and program transmission apparatus
CN100580661C (zh) 结构化文档、尤其xml文档的编码/译码的方法和装置
CN109818930B (zh) 一种基于tcp协议的通讯文本数据传输方法
US8120515B2 (en) Knowledge based encoding of data with multiplexing to facilitate compression
US20100115041A1 (en) Creating a message readable by a plurality of heterogeneous recipients
US20050120031A1 (en) Structured document encoder, method for encoding structured document and program therefor
CN107561564B (zh) 一种北斗卫星信息传输的压缩实现方法
Werner et al. Compressing SOAP messages by using differential encoding
CN101346689A (zh) 压缩模式表示对象和用于元数据处理的方法
CN102571966A (zh) 一种大型xml文件的网络传输方法
US11070231B2 (en) Reducing storage of blockchain metadata via dictionary-style compression
CN100444635C (zh) TV-Anytime元数据服务中的利用了get_Data操作的请求域提供方法
CN101079889A (zh) 数据传输系统及其传输方法
CN106851733A (zh) 一种针对移动网络应用的自适应http消息压缩方法
JP4548184B2 (ja) 圧縮規則生成方法、圧縮通信装置及びプログラム
CN101917332A (zh) 一种降低消息中间件网络负载的消息传递方法
WO2017157023A1 (zh) 一种soap报文传输方法及系统
CN101500210B (zh) 基于xmpp协议的低传输负载的即时通信方法及其系统
EP1154352A1 (en) Data transmission method, computer-readable medium, and data transmission apparatus
CN108040041A (zh) 一种基于业务驱动的图像差异传输协议设计系统及方法
CN1541475B (zh) 传输用户数据报协议消息的方法
CN102843345B (zh) 远程沟通方法及其计算机程序产品
CN115499506A (zh) 一种基于lzw算法的mqtt信息传输数据压缩方法及服务器
KR101066610B1 (ko) Xml과 json 데이터의 압축 및 분할 전송시스템

Legal Events

Date Code Title Description
C06 Publication
C57 Notification of unclear or unknown address
DD01 Delivery of document by public notice

Addressee: Zhang Daijun

Document name: Notification of Passing Preliminary Examination of the Application for Invention

PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
DD01 Delivery of document by public notice

Addressee: Zhang Daijun

Document name: Notification of Patent Invention Entering into Substantive Examination Stage

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20091014