uniapp 微信小程序 mqtt 真机调试 笔记

2022/4/10 9:12:38

本文主要是介绍uniapp 微信小程序 mqtt 真机调试 笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

uniapp 微信小程序 mqtt 真机调试 笔记

一、uniapp代码:只要微信小程序模拟器运行正常就说明前端配置没问题

// #ifdef MP-WEIXIN
   self.options = {
       username:"username",
       password:"password",
   }
   var client = mqtt.connect('wxs://www.xxx.com/mqtt',self.options)
// #endif

二、mqtt服务端配置(参考https://www.cnblogs.com/wishit/p/16014252.html)

三、NGINX安装及配置

1、NGINX安装

官网下载地址:https://nginx.org/en/download.html
最新稳定版(stable version)
***注意:不能使用中文路径***

2、为了启动(重启等)操作方便,在NGINX根目录新建一个nginx.bat文件

@echo off&color e&Title Nginx 命令行控制台


cls


:Begin


echo   **********************************
echo.
echo          Nginx 命令行控制台
echo.
echo   **********************************
echo. & echo   Script: %0% & echo.
echo 请输入命令:
echo.
echo     reload       重载 Nginx 配置
echo     stop         停止 Nginx 服务
echo     quit         退出 Nginx 服务
echo     list         查询 Nginx 服务
echo     info         输出 Nginx 安装信息
echo.
echo     kill         杀死 Nginx 进程
echo     start        启动 Nginx 进程
echo     restart      重启 Nginx 配置
echo.
echo     exit         退出控制台
echo     cmd          启动 cmd


echo.&echo.&set /p cmd=请输入:


if  "%cmd%"=="kill"     goto Kill
if  "%cmd%"=="exit"    goto End
if  "%cmd%"=="start"   goto Start
if  "%cmd%"=="info"   goto Info
if  "%cmd%"=="restart"   goto ReStart
if  "%cmd%"=="reload"  goto Reload
if  "%cmd%"=="stop"    goto Stop
if  "%cmd%"=="quit"    goto Quit
if  "%cmd%"=="list"    goto List
if  "%cmd%"=="cmd"     goto Cmd


cls
goto Begin


:End
exit


:Kill
cls
echo.
echo     尝试杀死 Nginx 进程
echo.
echo.&echo.
taskkill /F /IM nginx.exe
set cmd=
echo.&echo     执行完成
echo.&echo.
goto Begin




:Info
cls
echo.
echo     输出 Nginx 安装信息
echo.
nginx.exe -V


set cmd=
echo.&echo.
goto Begin




:Start
cls
echo.
echo     尝试启动 Nginx 进程
echo.
echo.&echo.


start nginx.exe


set cmd=
echo.&echo     执行完成
echo.&echo.
goto Begin




:ReStart
cls
echo.
echo     尝试杀死 Nginx 进程
echo.
echo.&echo.
taskkill /F /IM nginx.exe
echo.
echo     尝试启动 Nginx 进程
echo.
echo.&echo.


start nginx.exe


set cmd=
echo.&echo     执行完成
echo.&echo.
goto Begin




:Reload
cls
echo.
echo     尝试重新加载 Nginx 配置文件
echo.
echo.&echo.


nginx.exe -s reload
set cmd=
echo.&echo     执行完成


echo.&echo.
goto Begin




:Stop
cls
echo.
echo     停止 Nginx 服务
echo.
echo.&echo.


nginx.exe -s stop
set cmd=
echo.&echo     执行完成


echo.&echo.
goto Begin




:Quit
cls
echo.
echo     退出 Nginx 服务
echo.
echo.&echo.


nginx.exe -s quit
set cmd=
echo.&echo     执行完成


echo.&echo.
goto Begin




:List
cls
echo.
echo     查询 Nginx 服务
echo.


tasklist /fi "imagename eq nginx.exe"
set cmd=
echo.&echo.
goto Begin


:Cmd
cls
start cmd
set cmd=
goto Begin

3、准备证书(以阿里云为例,下载NGINX证书)

NGINX根目录新建ssl文件夹,将证书文件xxx.key,xxx.pem拷贝到ssl文件夹

4、配置NGINX.CONF

    upstream webcom { #这里类似一个别名,在下文中使用
        server 127.0.0.1:5000; #端口改为自己的端口
        keepalive 64;
    }

    upstream apicom { #这里类似一个别名,在下文中使用
        server 127.0.0.1:5001; #端口改为自己的端口
        keepalive 64;
    }

    server {
        listen       80;
        server_name  www.lengkucloud.com;

        rewrite ^(.*)$  https://$host$1 permanent;#用户访问时实现http强制跳转为https
    }

    server {
       listen      443 ssl;#监听端口
       server_name www.xxx.com;#配置域名,修改为你自己的域名
        root html;
        index index.html index.htm index.php;
        ssl_certificate ./ssl/xxx.pem;#配置SSL证书,修改为你自己的证书
        ssl_certificate_key ./ssl/xxx.key;#配置证书密钥,修改为你自己的
        access_log ./logs/xxx.log;#配置日志输出,修改为你自己的
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        location = /mqtt {#当访问为wss://www.xxx.com
            proxy_pass https://www.xxx.com:8888; #mqtt服务端监听的端口号(8888改为你自己的端口),8888端口就是wss通讯端口,这里做代理转发
            proxy_redirect off;
            proxy_set_header Host www.xxx.com:8888;
            proxy_set_header Sec-WebSocket-Protocol mqtt;
            # 这些都是 websocket必须要配置的
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }


       location /api/ {#小程序访问api按此方法配置https的访问            
            proxy_pass http://apicom/;#这里使用的是别名,在上面定义了的
       }

       location / {#其余的就转发到网站实现https的访问
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host  $http_host;
            proxy_set_header X-Nginx-Proxy true;
            proxy_set_header Connection "";
            proxy_pass http://webcom/;#这里使用的是别名,在上面定义了的
       }

    }

配置完成后,启动(或重启)NGINX即可,这样小程序mqtt真机调试,web的HTTPS,api的HTTPS就都可以了

 



这篇关于uniapp 微信小程序 mqtt 真机调试 笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程