• emqx ws转成wss


    主要是在nginx里加

    把8083转成443

    下面是完整nginx配置

    server {
        listen                     443;
        server_name                localhost;
        root                       html;
        index                      index.html index.htm;
        ssl                        on;
        ssl_certificate            /root/hserver/ssl/XXXXXX.pem;
        ssl_certificate_key        /root/hserver/ssl/XXXXXX.key;
        ssl_ciphers                ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_prefer_server_ciphers  on;
        ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
        ssl_session_timeout        5m;
    
        location / {
            root        html;
            index       index.html index.htm;
            proxy_pass  http://localhost:3000;
        }
    
        location /mqtt {
            access_log          //mnt/logs/emqtt.log;
            proxy_pass          http://localhost:8083/mqtt;
            proxy_read_timeout  60s;
            proxy_set_header    Host $host;
            proxy_set_header    X-Real_IP $remote_addr;
            proxy_set_header    X-Forwarded-for $remote_addr;
            proxy_http_version  1.1;
            proxy_set_header    Upgrade $http_upgrade;
            proxy_set_header    Connection Upgrade;
        }
    }
    

      

    下面是客户端测试的东西:

    <script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>
    
    <script>
        // 将在全局初始化一个 mqtt 变量
        //console.log(mqtt)
    	// 连接选项
    const options = {
          connectTimeout: 4000, // 超时时间
          // 认证信息
          clientId: 'emqx-connect-via-webstest',
          username: 'user',
          password: 'pass',
    }
    
    const client = mqtt.connect('wss://yun.xxxx.cn/mqtt', options)
    
    client.on('connect', (e) => {
        console.log('成功连接服务器')
        
        // 订阅一个主题
        client.subscribe('hello', { qos: 1 }, (error) => {
            if (!error) {
                console.log('订阅成功');
                client.publish('hello', 'Hello EMQ', { qos: 1, rein: false }, (error) => {
                    console.log(error || '发布成功')
                })
            }
        })
    })
    
    </script>
    

      

  • 相关阅读:
    Scrum敏捷开发中的各种会议到底怎么开?
    敏捷的方法与误区
    原创:分享封装好的面向JAVA的memcached客户端操作类
    ReactRouter路由配置
    脚手架创建react项目
    React基础知识
    Fetch请求
    redux学习笔记
    npm install常用用法
    python3+selenium3自动化8——当click事件失效,如何解决 测试
  • 原文地址:https://www.cnblogs.com/adjk/p/10437846.html
Copyright © 2020-2023  润新知