在使用uni-app做MQTT测试的时候,按照插件市场的mqtt-demo和网上的教程如何在uniapp中使用mqtt尝试了一下,用别人的测试服务端没有问题,当用上自家云端同事做的服务端就出现了错误
WebSocket connection to 'ws://192.168.1.101:4853/' failed: Error during WebSocket handshake: Sent non-empty 'Sec-WebSocket-Protocol' header but no response was received
但是云端同事说他使用第三方测试软件没问题,把我打发回来,一脸茫然。。。
行吧,我还有百度
再不行还能Google
结果翻了一下午没找到解决方法。。。
只好去看官方git有没有人提出过这个问题,没想到还真有
在这里记录一下,免得下次再也找不到
https://github.com/mqttjs/MQTT.js/issues/777
export const MQTT_OPTIONS = {
connectTimeout: 5000,
clientId: '',
// 增加以下两行配置 start
protocolId: 'MQIsdp',
protocolVersion: 3,
// end
username: MQTT_USERNAME,
password: MQTT_PASSWORD,
clean: false
}
不过我还没有想明白为啥能解决;暂时先这样吧,以后想明白了再补充,或期待评论区指点迷津。