我尝试使用MQTT从浏览器向python服务器发送压缩的JSON。 这就是我压缩原始对象的方法(使用gzip-js)
...
if(opt.compression){
msg = new Uint8Array(gzip.zip(msg, compressionOptions));
}
MQTTclient.publish(topic, msg);
...
但我收到错误:
script.js:65 TypeError:string.charCodeAt不是函数(...)
EventEmitter.emit @ events.js:77
sendPacket @ client.js:51
...
如果我尝试将消息发布为标准类型数组,则会发生同样的情况。 发送压缩消息的唯一方法是对其进行编码,但后来我在python端遇到了问题。
答案 0 :(得分:0)
我通过发布一个实际的"缓冲区"而不是类型化的数组。 这是我的解决方法:
...
if(opt.compression){
msg = toBuffer(gzip.zip(msg, compressionOptions));
}
MQTTclient.publish(topic, msg);
...
我使用了typedarray-to-buffer模块。