一种基于LZW算法的MQTT信息传输数据压缩方法及服务器技术

技术编号:36033477 阅读:63 留言:0更新日期:2022-12-21 10:36
本发明专利技术公开了一种基于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的基本编码表体积。的乱码问题且减少了LZW的基本编码表体积。的乱码问题且减少了LZW的基本编码表体积。

【技术实现步骤摘要】
一种基于LZW算法的MQTT信息传输数据压缩方法及服务器


[0001]本专利技术涉及信息传输
,尤其涉及一种基于LZW算法的MQTT信息传输数据压缩方法及服务器。

技术介绍

[0002]MQTT作为一种低开销、低带宽占用的即时通讯协议,其在物联网领域得到了广泛的应用。MQTT通过发布/订阅(Pub/Sub)模式,使得消息在不同终端中交互,从而实现物联通信。
[0003]在目前市场上常见轻量级数据存储格式JSON,其与开发语言无关且具备较为完善的一套数据填充解析架构,无疑是MQTT数据传递中首选一种数据格式。在实际开发中难免会出现超长文本类型的JSON数据结构,其可能会导致MQTT发送消息失败或发送时间过长等一些列问题,从而带来较大的体验和传递数据大小限制问题。

技术实现思路

[0004]为了克服现有技术的不足,本专利技术的目的之一在于提供一种基于LZW算法的MQTT信息传输数据压缩方法,其能解决体积较大的JSON数据在传输中的时效性差的问题。
[0005]本专利技术的目的之二在于提供一种基于LZW算法的MQTT信息传输数据压缩服务器,其能解决体积较大的JSON数据在传输中的时效性差的问题。
[0006]为了达到上述目的之一,本专利技术所采用的技术方案如下:
[0007]一种基于LZW算法的MQTT信息传输数据压缩方法,包括以下步骤:
[0008]S1:将JSON数据源填充的中文字符转化为预设格式,并初始化ASCLL码及对应的数字存入哈希表中作为LZW基础字典;
[0009]S2:遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到N组int数组;
[0010]S3:将N组int数组转存成2N个char数值,再将char数值转化成byte字节数组传输至MQTT订阅主题中;
[0011]S4:通过MQTT订阅主题将字节流缓存起来,再通过遍历缓存的字节流,转化为int数组;
[0012]S5:通过LZW算法对int数组进行解压,获得源JSON数据,并将源JSON数据进行格式转化。
[0013]优选的,所述S1具体由以下步骤实现:
[0014]S11:将JSON数据源填充的中文字符转化为UTF

8编码格式;
[0015]S12:初始化255个ASCLL码及对应的数字存入哈希表中作为LZW基础字典。
[0016]优选的,所述S2具体由以下步骤实现:
[0017]S21:遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到N组int数组,并存储在内存对象中;
[0018]S22:判断LZW压缩后的数据是否小于原始数据,若否,则返回S21,若是,则执行S3。
[0019]优选的,所述S4具体由以下步骤实现:
[0020]S41:通过MQTT订阅主题将字节流缓存起来;
[0021]S42:判断是否缓存全部字节流,若是,则执行S43,若否,则执行S41;
[0022]S43:通过遍历缓存的字节流,转化为int数组。
[0023]优选的,所述S5具体由以下步骤实现:
[0024]通过LZW算法对int数组进行解压,获得源JSON数据,并将源JSON数据进行UTF

8编码格式转化。
[0025]为了达到上述目的之二,本专利技术所采用的技术方案如下:
[0026]一种基于LZW算法的MQTT信息传输数据压缩服务器,包括储存器和处理器;
[0027]储存器,用于储存程序指令;
[0028]处理器,用于运行所述程序指令,以执行如上述的基于LZW算法的MQTT信息传输数据压缩方法。
[0029]相比现有技术,本专利技术的有益效果在于:通过填充的JSON数据进行格式化,避免了LZW在压缩中文字符时出现的乱码问题且减少了LZW的基本编码表体积,并且将int数组转存成char数值,进一步提高了LZW算法的压缩比例,降低json数据压缩对设备性能上的要求以及MQTT在实际的使用过程中容易受机器内存影响的概率。
附图说明
[0030]图1为本专利技术中所述的基于LZW算法的MQTT信息传输数据压缩方法
具体实施方式
[0031]以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。
[0032]在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0033]在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。
[0034]下面,结合附图以及具体实施方式,对本专利技术做进一步描述:
[0035]在本专利技术中,MQTT作为一种低开销、低带宽占用的即时通讯协议,其在物联网领域得到了广泛的应用。MQTT通过发布/订阅(Pub/Sub)模式,使得消息在不同终端中交互,从而实现物联通信。
[0036]实施例一:
[0037]如图1所示,一种基于LZW算法的MQTT信息传输数据压缩方法,包括以下步骤:
[0038]S1:将JSON数据源填充的中文字符转化为预设格式,并初始化ASCLL码及对应的数字存入哈希表中作为LZW基础字典;
[0039]具体的,先转化为预设的编码格式,有效减少LZW压缩过程中字典大小,并且将初始化ASCLL码及对应的数字存入哈希表中作为LZW基础字典,在本实施例中,所述S1具体由以下步骤实现:
[0040]S11:将JSON数据源填充的中文字符转化为UTF

8编码格式;
[0041]具体的,JSON数据源填充中文字符时先转化”UTF

8”编码格式(以及其他编码格式),减少LZW压缩过程中字典大小。
[0042]S12:初始化255个ASCLL码及对应的数字存入哈希表中作为LZW基础字典。
[0043]具体的,初始化255个ASCLL码及对应的数字存入哈希表中作为LZW基础字典,减少在压缩过程中多次实例化基础字典对象带来的资源浪费。
[0044]S2:遍历读取JSON字符串数据及输出字符数据流Charstream进行LZW压缩,获取到本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:梁广杰林俊杰张常华朱正辉赵定金
申请(专利权)人:广州市保伦电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1