【发布时间】:2016-10-14 16:15:22
【问题描述】:
我正在尝试使用 MQTT 从浏览器将压缩的 JSON 发送到 python 服务器。 这就是我压缩原始对象的方式(通过使用 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 端遇到了问题。
【问题讨论】:
-
您能解释一下为什么您不只是让浏览器和服务器为您执行 gzip 压缩/解压缩吗?浏览器的gzip远胜于任何可以用JS写的东西,而且已经加载到内存中了……
-
您有什么理由使用 MQTT.js 而不是 paho JS 客户端?
-
@LinuxDisciple 这很可能不仅仅是浏览器和代理之间的负载,而是代理和订阅者之间的负载。 websocket协议升级后gzip编码也能正常工作吗?
-
@LinuxDisciple 我需要通过 mqtt 在客户端和服务器之间进行通信。我还没有看到如何使用您指出的内容来做到这一点。
-
@hardillb 有什么理由偏爱 paho 客户?它支持gzip压缩吗?我在文档中找不到与此相关的任何内容。是的,我需要将浏览器和 borker 广告之间的负载从代理压缩到其他订阅者(python 服务器)。
标签: javascript json gzip mqtt inflate