uni-app 错误:Sent non-empty ‘Sec-WebSocket-Protocol‘ header but no response was received

潘俊楚
2023-12-01

前言

在使用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
}

不过我还没有想明白为啥能解决;暂时先这样吧,以后想明白了再补充,或期待评论区指点迷津。

完事

 类似资料: