站务联系

微信小程序MQTT客户端的坑

发布时间:2021-05-07   来源:网络整理    
字号:

前方:

微信小程序界面之类的,如果功能不是很复杂的话,开发上去似乎还是很简略的,但是比较坑的是他的安全模式。首先你还要有自己的域名,你的域名还要备案,备案的话通常要20天左右,而且你自己的服务器要支持https。所以,我要腾讯云买了域名,买了服务器,备案等等弄了20多天,钱倒是花了不少,这还仅仅第一坑。

小程序MQTT客户端:

小程序的MQTT客户端支持使用的是paho-mqtt.js,可以在github里面找到源码,怎么使用的话可以查看源码底下包含的事例,总的来说并不是很复杂。但是弄好以后,界面如下:

微信小程序MQTT客户端的坑

用过MQTT的晓得可以选择端口跟服务器地址,还有用户名密码认证是可选的。所以我填好以后。连接错误如下:

微信小程序MQTT客户端的坑

按照提示说,我的域名没有在合法域名列表中,但是我确定是早已配置好了的微端服务器,而且小程序项目也早已刷新了,还是会提示这个错误。

解决办法:

因为小程序是使用wss进行通讯,默认使用的是443端口,不用自己指定端口,可以使用下边图片中最下方的方法进行访问。

微信小程序MQTT客户端的坑

用过EMQ的应当晓得,tcp端口为1883,ssl端口为8883,ws端口为8083,wss端口为8084,但是目前不能使用这种端口进行访问。如下所示:

微信小程序MQTT客户端的坑

EMQ服务器搭建:

EMQ服务的搭建虽然并不复杂,可以参照进行安装,我使用的是Linux的通用版本,这里要留意的是SSL证书的设置,我的一个问题有提及,有兴趣的可以瞧瞧。

要解决前面的问题,这里使用Nginx进行逆向代理。Nginx的安装也不是很复杂,但是使用源码安装的话微端服务器,安装之前要安装好依赖库,可以参照: ubuntu16.04 nginx安装。另外,还要添加一个 more_clear_headers 模块,可以参照:openresty/headers-more-nginx-module

微信小程序MQTT客户端的坑

上面域名跟证书之类的替换为你自己的域名跟证书,注意证书的路径。另外,新测8084端口(wss)和8083端(ws)都可以,不过后面用8084端口时要用https。现在早已可以完成小程序MQTT客户端与EMQ服务器的通讯了。

感谢wxapp作者的交流指导。

参考:

图说天下

×
二维码生成