微信小程序连接MQTT服务器

主要库:https://github.com/mqttjs/MQTT.js

一、搭建EMQX

略;

二、配置nginx

server{
        listen 443;
        server_name www.com.cn;

        proxy_intercept_errors on;
        recursive_error_pages on;

        ssl on;
        ssl_certificate /etc/letsencrypt/live/www.com.cn/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/www.com.cn/privkey.pem;
        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;

        client_max_body_size 100m;
        location / {
                proxy_pass http://127.0.0.1:8080;
        }
        location /mqtt {
                proxy_pass http://127.0.0.1:8083;
                proxy_redirect off;
        #       proxy_set_header Host www.domain.com: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";
        }
}

-重启Nginx

三、Nodejs Demo

var mqtt = require('mqtt')
var client  = mqtt.connect('wss://www.com.cn/mqtt')

client.publish('/World', 'Hello mqtt from wss')

client.subscribe("/World")

client.on("message", function (topic, payload) {
    console.log(payload.toString())
})

 

参考连接:

https://segmentfault.com/a/1190000012865251