微信小程序MQTT聊天室搭建

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38400187/article/details/79863511

在网上查了多资料,花了2天的时间终于把微信小程的聊天室环境搭建起来了,还算满意,在这里和大家分享下,希望能帮助要帮助的小程序开发者。

和网上介绍相同: nginx反向代理,  小程序mqtt插件 paho-mqtt.js, 用到mqtt服务器,

1. nignx,

    nginx安装网上都有,说下注意的几点:

        a. 小程序wss必须用到443 端口(目前我是这么做的,用其他端口,小程序会报错,不是有效的https什么的,忘记截图了)

        b. nginx 安装我使用的是源码编译安装,开始用的yum安装,发现没有./configure 没法添加第三方模块

        c. 需要添加第三方模块, 在这里直接贴出我的模块配置

            第三方模块地址:https://www.nginx.com/resources/wiki/modules/

           configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=./mnt/headers-more-nginx-module-0.33

        d. 小程序支持mqtt , 通过nginx配置:

                 server {
                     listen       443 ssl;
                    server_name  localhost1  localhost2 ;
                    ssl_certificate      *.pem;
                    ssl_certificate_key  *.key;

                    ssl_session_cache    shared:SSL:1m;
                    ssl_session_timeout  5m;

                    ssl_ciphers  HIGH:!aNULL:!MD5;
                    ssl_prefer_server_ciphers  on;

                    location / {
                    proxy_pass http://127.0.0.1;
            }

            location = /mqtt {
                    proxy_pass http://127.0.0.1:8083;
                    proxy_redirect off;
                    proxy_set_header Host 127.0.0.1:8083;

                    proxy_set_header Sec-WebSocket-Protocol mqtt;
                    more_clear_headers Sec-WebSocket-Protocol;
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "upgrade";
                    }
                }


2. paho-mqtt.js

        通过网上参考的例子: https://github.com/tennessine/paho.mqtt.wxapp;

        介绍的很详细,就不多说了, 有一点,说下,开发中,没有太多时间深入研究,

        a. 在用443端口链接时间,小程成依旧报错,我就把原js所有关于端口拼接的先注释掉了,就可以了,如果有知道的,可以告诉我,谢谢哦,

         b.  开发中 在页面中定义client 进入退出页面,再次进入链接不上mqtt, 也不知什么原因,最后没法办,把client定义成全局的

        ok 

      

展开阅读全文

没有更多推荐了,返回首页