为方便大家能快速的解决,我添加几个关键词:emqx 配置websocket ssl 、 emqx 配置ssl 、docker项目管理器添加mqtt 、在docker安装mqtt后如何配置ssl证书、小程序反向代理解决mqtt ssl问题
问题是这样的:小程序的wx对应ws协议,wxs对应wss协议,本篇文章介绍了:1、如何解决真机调试mqtt报错连接不上的问题 2、调试通过后,去除勾选不校验合法域名,连接8084端口失败的解决办法(本文内容)
经过3天的不断尝试,用尽了网上很多办法,对MQTT证书的配置等等。。也没能解决小程序访问wss的问题,小程序调试可以用ws就像http一样在调试端是可以用的,但是上线必须要https,所以ws对应的加密协议就是wss,上文中解决了真机调试的问题,也就是换MQTT.js文件,今天的教程呢对原来的MQTT.js不做更换,用之前就可以了。
解决思路:反向代理,通过添加域名设置反向代理,在小程序开发者配置添加合法域名即可
第一步:
第二步:(点击宝塔网站)
第三步:
第四步:(点击反向代理)
粘贴的代码:
#持久化连接配置
proxy_connect_timeout 30s;
proxy_read_timeout 86400s;
proxy_send_timeout 30s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
第五步:配置网站ssl(先将反向代理关闭,否则宝塔不允许配置)
1、关闭反向代理后 2、点击ssl(配置证书,不懂得百度)
3、配置好以后,打开反向代理,让其运行
第六步:小程序连接mqtt 1、进入小程序取消勾选不校验合法域名
2、修改url为
wxs://你的域名:443/mqtt
代码就不贴了,可以参考上一篇文章
3、效果图(手机上测试也通过了)