解决微信小程序MQTT真机连接问题与合法域名配置SSL问题

为方便大家能快速的解决,我添加几个关键词: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不做更换,用之前就可以了。

解决思路:反向代理,通过添加域名设置反向代理,在小程序开发者配置添加合法域名即可

第一步:

在这里插入图片描述

第二步:(点击宝塔网站)

在这里插入图片描述

第三步:

在这里插入图片描述

第四步:(点击反向代理)

在这里插入图片描述

粘贴的代码:

代码语言:javascript
复制
    #持久化连接配置
    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、效果图(手机上测试也通过了)

在这里插入图片描述