CN115499506B - 一种基于lzw算法的mqtt信息传输数据压缩方法及服务器 - Google Patents
一种基于lzw算法的mqtt信息传输数据压缩方法及服务器 Download PDFInfo
- Publication number
- CN115499506B CN115499506B CN202211156650.6A CN202211156650A CN115499506B CN 115499506 B CN115499506 B CN 115499506B CN 202211156650 A CN202211156650 A CN 202211156650A CN 115499506 B CN115499506 B CN 115499506B
- Authority
- CN
- China
- Prior art keywords
- lzw
- data
- int
- mqtt
- json
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种基于LZW算法的MQTT信息传输数据压缩方法及服务器,其方法包括以下步骤:S1:将JSON数据源填充的中文字符转化为预设格式,并初始化ASCLL码及对应的数字存入哈希表中作为LZW基础字典;S2:遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到N组int数组;S3:将N组int数组转存成2N个char数值,再将char数值转化成byte字节数组传输至MQTT订阅主题中;S4:通过MQTT订阅主题将字节流缓存起来,再通过遍历缓存的字节流,转化为int数组;S5:通过LZW算法对int数组进行解压,获得源JSON数据,并将源JSON数据进行格式转化。在本发明中,通过填充的JSON数据进行格式化,避免了LZW在压缩中文字符时出现的乱码问题且减少了LZW的基本编码表体积。
Description
技术领域
本发明涉及信息传输技术领域,尤其涉及一种基于LZW算法的MQTT信息传输数据压缩方法及服务器。
背景技术
MQTT作为一种低开销、低带宽占用的即时通讯协议,其在物联网领域得到了广泛的应用。MQTT通过发布/订阅(Pub/Sub)模式,使得消息在不同终端中交互,从而实现物联通信。
在目前市场上常见轻量级数据存储格式JSON,其与开发语言无关且具备较为完善的一套数据填充解析架构,无疑是MQTT数据传递中首选一种数据格式。在实际开发中难免会出现超长文本类型的JSON数据结构,其可能会导致MQTT发送消息失败或发送时间过长等一些列问题,从而带来较大的体验和传递数据大小限制问题。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种基于LZW算法的MQTT信息传输数据压缩方法,其能解决体积较大的JSON数据在传输中的时效性差的问题。
本发明的目的之二在于提供一种基于LZW算法的MQTT信息传输数据压缩服务器,其能解决体积较大的JSON数据在传输中的时效性差的问题。
为了达到上述目的之一,本发明所采用的技术方案如下:
一种基于LZW算法的MQTT信息传输数据压缩方法,包括以下步骤:
S1:将JSON数据源填充的中文字符转化为预设格式,并初始化ASCLL码及对应的数字存入哈希表中作为LZW基础字典;
S2:遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到N组int数组;
S3:将N组int数组转存成2N个char数值,再将char数值转化成byte字节数组传输至MQTT订阅主题中;
S4:通过MQTT订阅主题将字节流缓存起来,再通过遍历缓存的字节流,转化为int数组;
S5:通过LZW算法对int数组进行解压,获得源JSON数据,并将源JSON数据进行格式转化。
优选的,所述S1具体由以下步骤实现:
S11:将JSON数据源填充的中文字符转化为UTF-8编码格式;
S12:初始化255个ASCLL码及对应的数字存入哈希表中作为LZW基础字典。
优选的,所述S2具体由以下步骤实现:
S21:遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到N组int数组,并存储在内存对象中;
S22:判断LZW压缩后的数据是否小于原始数据,若否,则返回S21,若是,则执行S3。
优选的,所述S4具体由以下步骤实现:
S41:通过MQTT订阅主题将字节流缓存起来;
S42:判断是否缓存全部字节流,若是,则执行S43,若否,则执行S41;
S43:通过遍历缓存的字节流,转化为int数组。
优选的,所述S5具体由以下步骤实现:
通过LZW算法对int数组进行解压,获得源JSON数据,并将源JSON数据进行UTF-8编码格式转化。
为了达到上述目的之二,本发明所采用的技术方案如下:
一种基于LZW算法的MQTT信息传输数据压缩服务器,包括储存器和处理器;
储存器,用于储存程序指令;
处理器,用于运行所述程序指令,以执行如上述的基于LZW算法的MQTT信息传输数据压缩方法。
相比现有技术,本发明的有益效果在于:通过填充的JSON数据进行格式化,避免了LZW在压缩中文字符时出现的乱码问题且减少了LZW的基本编码表体积,并且将int数组转存成char数值,进一步提高了LZW算法的压缩比例,降低json数据压缩对设备性能上的要求以及MQTT在实际的使用过程中容易受机器内存影响的概率。
附图说明
图1为本发明中所述的基于LZW算法的MQTT信息传输数据压缩方法
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
下面,结合附图以及具体实施方式,对本发明做进一步描述:
在本发明中,MQTT作为一种低开销、低带宽占用的即时通讯协议,其在物联网领域得到了广泛的应用。MQTT通过发布/订阅(Pub/Sub)模式,使得消息在不同终端中交互,从而实现物联通信。
实施例一:
如图1所示,一种基于LZW算法的MQTT信息传输数据压缩方法,包括以下步骤:
S1:将JSON数据源填充的中文字符转化为预设格式,并初始化ASCLL码及对应的数字存入哈希表中作为LZW基础字典;
具体的,先转化为预设的编码格式,有效减少LZW压缩过程中字典大小,并且将初始化ASCLL码及对应的数字存入哈希表中作为LZW基础字典,在本实施例中,所述S1具体由以下步骤实现:
S11:将JSON数据源填充的中文字符转化为UTF-8编码格式;
具体的,JSON数据源填充中文字符时先转化”UTF-8”编码格式(以及其他编码格式),减少LZW压缩过程中字典大小。
S12:初始化255个ASCLL码及对应的数字存入哈希表中作为LZW基础字典。
具体的,初始化255个ASCLL码及对应的数字存入哈希表中作为LZW基础字典,减少在压缩过程中多次实例化基础字典对象带来的资源浪费。
S2:遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到N组int数组;
具体的,通过LZW压缩原始数据,优化数据传输,在本实施例中,所述S2具体由以下步骤实现:
S21:遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到N组int数组,并存储在内存对象中;
具体的,遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到一组int数组,将其存储在内存对象中
S22:判断LZW压缩后的数据是否小于原始数据,若否,则返回S21,若是,则执行S3。
具体的,LZW压缩后得到int数组转字符串输,将压缩后的数据与原始数据做对比,如果压缩后的数据比原始数据小则进入下一步操作,若否,则返回原始数据直接将原json数据发送至接收端(利用LZW在压缩性质:压缩比例随着数据大小及内容相似性而改变,数据越大,压缩比例越大,反之小数据则可能压缩后比原数据大),在压缩大字符数据的压缩比例大约在0.86(源JSON数据大小在1920字符)。
S3:将N组int数组转存成2N个char数值,再将char数值转化成byte字节数组传输至MQTT订阅主题中;
具体的,根据int的类型占16位,char类型占8位的原理,将数组中的int类型转化为char类型数组保存起来,这int转为char过程中将16位的int数值拆分位两个8位(0-255)char数值进行储存(比如256即为00000001 00000000),再通过char转byte原则将原储存体积占两个字节的char转为1个字节的byte进行储存(比如两个字节的char值a,在转化为byte(-128~127)类型后为byte值为97仅占1个字节)(类型转化技术可以任意选择已公开的转化方法),将缓存的char数值全部转化为1个字节的byte后,其中压缩后得到字符串输出压缩比例大约在0.44,在char数值转化为byte字节数组后,将其当传输数据使用,将获取到的byte数组数据,打包发送至指定MQTT订阅主题中,避免再次将其转化为String类型后再传输,减少非必要性的类型转化操作带来的程序执行耗时问题,直接发送压缩后的字节数组。
S4:通过MQTT订阅主题将字节流缓存起来,再通过遍历缓存的字节流,转化为int数组;
具体的,MQTT订阅主题将byte数组数据全部缓存起来进行下一步的处理,在本实施例中,所述S4具体由以下步骤实现:
S41:通过MQTT订阅主题将字节流缓存起来;
具体的,MQTT中转服务将收到数据,转发至订阅该主题的终端中。
S42:判断是否缓存全部字节流,若是,则执行S43,若否,则执行S41;
具体的,接受端将传输的字节流缓存起来,待全部接收完后将数据传递至下一步进行操作,若为缓存全部,则进行缓存。
S43:通过遍历缓存的字节流,转化为int数组。
具体的,将缓存的字节流通过遍历,分别获取到高8位与低8位字节直接转化为int数组,再将高低位int数组转化为源LZW压缩后的int数组,优选的,若低八位对应的高八位为1时:并且低8位小于0时:源Int=低8位Int+256+256*高8位Int,若低8位大于0时:源Int=低8位Int+256*高8位Int;若低八位对应的高八位为0时:源Int=低8位Int。
S5:通过LZW算法对int数组进行解压,获得源JSON数据,并将源JSON数据进行格式转化。
具体的,对int数组进行解压,获得源JSON数据,在本实施例中,所述S5具体由以下步骤实现:
通过LZW算法对int数组进行解压,获得源JSON数据,并将源JSON数据进行UTF-8编码格式转化。
具体的,将获取到的源LZW压缩后得到的int数组,通过LZW算法进行解压即可得到源JSON数据,再使用JSON键值对数据时,将数据进行”UTF-8”转化,对应(1)中文字符乱码问题。
实施例二:
一种基于LZW算法的MQTT信息传输数据压缩服务器,包括存器和处理器;
储存器,用于储存程序指令;
处理器,用于运行所述程序指令,以执行如实施例一所述的基于LZW算法的MQTT信息传输数据压缩方法。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。
Claims (6)
1.一种基于LZW算法的MQTT信息传输数据压缩方法,其特征在于,包括以下步骤:
S1:将JSON数据源填充的中文字符转化为预设格式,并初始化ASCLL码及对应的数字存入哈希表中作为LZW基础字典;
S2:遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到N组int数组;
S3:将N组int数组转存成2N个char数值,再将char数值转化成byte字节数组传输至MQTT订阅主题中;
S4:通过MQTT订阅主题将字节流缓存起来,再通过遍历缓存的字节流,转化为int数组;
S5:通过LZW算法对int数组进行解压,获得源JSON数据,并将源JSON数据进行格式转化。
2.如权利要求1所述的基于LZW算法的MQTT信息传输数据压缩方法,其特征在于,所述S1具体由以下步骤实现:
S11:将JSON数据源填充的中文字符转化为UTF-8编码格式;
S12:初始化255个ASCLL码及对应的数字存入哈希表中作为LZW基础字典。
3.如权利要求1所述的基于LZW算法的MQTT信息传输数据压缩方法,其特征在于,所述S2具体由以下步骤实现:
S21:遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到N组int数组,并存储在内存对象中;
S22:判断LZW压缩后的数据是否小于原始数据,若否,则返回S21,若是,则执行S3。
4.如权利要求1所述的基于LZW算法的MQTT信息传输数据压缩方法,其特征在于,所述S4具体由以下步骤实现:
S41:通过MQTT订阅主题将字节流缓存起来;
S42:判断是否缓存全部字节流,若是,则执行S43,若否,则执行S41;
S43:通过遍历缓存的字节流,转化为int数组。
5.如权利要求1所述的基于LZW算法的MQTT信息传输数据压缩方法,其特征在于,所述S5具体由以下步骤实现:
通过LZW算法对int数组进行解压,获得源JSON数据,并将源JSON数据进行UTF-8编码格式转化。
6.一种基于LZW算法的MQTT信息传输数据压缩服务器,其特征在于:包括储存器和处理器;
储存器,用于储存程序指令;
处理器,用于运行所述程序指令,以执行如权利要求1-5任意一项所述的基于LZW算法的MQTT信息传输数据压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211156650.6A CN115499506B (zh) | 2022-09-21 | 2022-09-21 | 一种基于lzw算法的mqtt信息传输数据压缩方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211156650.6A CN115499506B (zh) | 2022-09-21 | 2022-09-21 | 一种基于lzw算法的mqtt信息传输数据压缩方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115499506A CN115499506A (zh) | 2022-12-20 |
CN115499506B true CN115499506B (zh) | 2023-04-18 |
Family
ID=84469779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211156650.6A Active CN115499506B (zh) | 2022-09-21 | 2022-09-21 | 一种基于lzw算法的mqtt信息传输数据压缩方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115499506B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116054840B (zh) * | 2023-01-30 | 2023-11-17 | 北京中科江南信息技术股份有限公司 | 一种json字符串数据压缩方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911570A (zh) * | 2017-11-27 | 2018-04-13 | 公安部交通管理科学研究所 | 一种对图片特征进行压缩及解压的方法 |
WO2022133356A1 (en) * | 2020-12-19 | 2022-06-23 | Abalta Technologies, Inc. | Contactless identification and payment |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936562B2 (en) * | 2019-08-02 | 2021-03-02 | Timescale, Inc. | Type-specific compression in database systems |
-
2022
- 2022-09-21 CN CN202211156650.6A patent/CN115499506B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911570A (zh) * | 2017-11-27 | 2018-04-13 | 公安部交通管理科学研究所 | 一种对图片特征进行压缩及解压的方法 |
WO2022133356A1 (en) * | 2020-12-19 | 2022-06-23 | Abalta Technologies, Inc. | Contactless identification and payment |
Non-Patent Citations (1)
Title |
---|
刘繁明 ; 刘莎 ; .气象传真图格式转换及压缩的实现.应用科技.(第09期),61-64. * |
Also Published As
Publication number | Publication date |
---|---|
CN115499506A (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6883035B2 (en) | System and method for communicating with temporary compression tables | |
CN109831409B (zh) | 数据传输方法、装置、计算机可读存储介质及电子设备 | |
US20020059462A1 (en) | Static information knowledge used with binary compression methods | |
CN115499506B (zh) | 一种基于lzw算法的mqtt信息传输数据压缩方法及服务器 | |
US6963587B2 (en) | Communication system and method utilizing request-reply communication patterns for data compression | |
US10817460B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
CN101079889A (zh) | 数据传输系统及其传输方法 | |
US20060291505A1 (en) | Method for extended transmission capabilities of short message service | |
CA2428788C (en) | Static information knowledge used with binary compression methods | |
US9294125B2 (en) | Leveraging language structure to dynamically compress a short message service (SMS) message | |
CN112399479B (zh) | 用于数据传输的方法、电子设备和存储介质 | |
EP1240763B1 (en) | Method and system for optimizing usage of air link | |
CN106851733A (zh) | 一种针对移动网络应用的自适应http消息压缩方法 | |
CN114363419A (zh) | 基于netconf协议的传输方法、设备及存储介质 | |
CN116684595A (zh) | 一种超低时延的图像编码系统、方法、装置及存储介质 | |
CN1897579A (zh) | 邮件传输所需的多国语支持系统及方法 | |
CN115865274A (zh) | 一种数据压缩方法、数据解压缩方法及数据压缩装置 | |
CN112732810A (zh) | 数据发送系统及方法、装置、存储介质、电子装置 | |
CN112788343A (zh) | 一种用于视频处理服务端的软硬件编码协同系统、方法及电子装置 | |
US10873747B2 (en) | Residual mapping method for image/video compression | |
EP2113845A1 (en) | Character conversion method and apparatus | |
CN102625018B (zh) | Ims基于xml隧道下的传真实现方法 | |
CN115190182B (zh) | 一种适用于北斗系统的数据无损压缩方法、装置及设备 | |
CN115665425B (zh) | 一种适用于卫星短报文通信的渐进式图片传输的方法 | |
CN116192237A (zh) | 基于云边协同的北斗短报文的传输方法及压缩系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: No. 56 Nanli East Road, Shiqi Town, Panyu District, Guangzhou City, Guangdong Province, 510000 Applicant after: Guangdong Baolun Electronics Co.,Ltd. Address before: No.19 Chuangyuan Road, Zhongcun street, Panyu District, Guangzhou, Guangdong 510000 Applicant before: GUANGZHOU ITC ELECTRONIC TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |