微信小程序使用MQTT.JS中遇到的问题
二、实现过程:
1、购买阿里云服务器;
2、购买域名,并进行域名备案;
5、阿里云服务器上Windows平台搭建Nginx服务器;
6、Nginx配置SSL证书、反向代理、配置为自启动服务(),SSL证书配置参考,
三、过程中遇到的问题:
1、问题1:由于跟设备之间进行通信,统一通信格式为十六进制字节数组格式,MQTT.JS需要支持发布字节数组格式,原有代码里面只支持发布字符串格式;
四、问题解决思路
1、问题1解决思路
开始出现这个问题,网络上更多的是更换MQTT.JS版本,尝试了多个版本的更换后,发现报的错误也不一样,最后确定一个版本,进行单步调试,发现有两处代码需要调整,具体代码调整如下,修改后可以支持发送十六进制字节数组。
2、问题2解决思路
出现模拟器可以正常连接、发布与接收消息,实际存在两种情况。
(1)MQTT.JS的版本问题,通过更新最新的版本或者其中一些稳定的版本可以解决,模拟器调试的时候存在sec-websocket-protocol:mqtt,而真机上不存在的时候,这个可以通过更新MQTT.JS进行解决。
(2)安卓真机必须使用TLS/433端口,在用模拟器和IOS的时候是正常的,但是用安卓的时候必须使用TLS/433端口,不能在连接地址处带端口。
由于安卓真机在连接EMQ的时候,连接地址不能带端口,因此我们需要利用Nginx将wss://域名/mqtt映射到我们实际的8083或者8084端口上进行使用。
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
小程序中对http请求进行加密处理