pako.js 压缩解压 + MQTT 的运用实例

本文介绍了如何在MQTT的publish和subscribe中运用pako.js进行deflate和gzip数据压缩解压,同时针对解压过程中的'incorrect header check'错误进行了分析,指出该错误通常是由于数据格式不正确导致,解决方案在于确保解压前正确转换数据为map格式。
摘要由CSDN通过智能技术生成

1. deflate\inflate在MQTTpublish和subscribe中的应用

publish压缩后的数据

import * as pako from 'pako'
import * as mqtt from 'mqtt'

//需连接mosquitto的服务

let info = `{time: 'YYYY-MM-DD<T>HH:mm[:ss[.SSS]]ZZ', 
            dev: {dev_id: 1, dev_name: '001', dev_type: '123', group_no: '1'}}`
info = pako.deflate(info)

this.client.on('connect', () => {
  this.client.subscribe('topic', (err) => {
    if (!err) {
        this.mqtt_publish('topic', info) //这里是我自己封装的函数,MQTT的publish用法详情见MQTT官网
    } else {
      logger.error(err)
    }
  })
})

subscribe数据,并解压

    this.client.on('message', (topic, message) => {
    // packet is Buffer
      try {
        let data = message.toString()
        const charData = data.split(',').map(function (x) { retu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值