我尝试理解并实现node.js的MQTT客户端,可以在:http://jahbromo.blogspot.de/2011/12/client-mqttt-javascript.html找到它。
当我发布低于 128 字节的播放负载时,没有问题,并且消息得到正确定向,但当负载较大时,node.js 在发布后立即打印出“连接已被代理关闭”。因为我对 websockets 和 node.js 比较陌生,所以我不明白为什么上面提到的这个 node.js-server-implemenation 无法处理大于 128 字节的播放负载。 因为我需要发送更大的有效负载,如果有人可以帮助我增加限制,那就太好了。
谢谢。
最佳答案
您会注意到链接到的代码的限制(实际上是 https://github.com/yilun/node_mqtt_client 的修改版本):
Can not handle payloads larger than 128 byte.
这是客户端库的限制,而不是 MQTT 的限制。
要添加对更大有效负载的支持,您需要为 PUBLISH 数据包实现完整的“剩余长度”支持,如规范中所述:http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html#fixed-header
关于node.js - 适用于大于 128 字节的 node.js 播放负载的 MQTT 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14337528/