小程序mqtt.js使用。如何解决小程序提示URL is not a constructor的问题?

小程序使用mqtt

https://blog.csdn.net/ngl272/article/details/87887885

//开头引入mqtt

var mqtt = require('../../utils/mqtt-2.18.8.min.js') //mqtt

。。。

onLoad里加入:

    this.doConnect();//连接mqtt服务器

。。。

doConnect(){
    //https://blog.csdn.net/ngl272/article/details/87887885

    const options = this.initMqttOptions();
    console.log(options)
    const client = mqtt.connect('wx://192.168.1.xxx',options)
    client.on('connect', function () {
      console.log('连接mqtt服务器成功')
      //订阅主题
      client.subscribe('runman', function (err) {
        if (!err) {
           console.log('订阅主题成功!');
        }
      })
    })
	//接收消息监听
    client.on('message', function (topic, message) {
      // message is Buffer
      console.log('收到消息:'+message.toString())
     //关闭连接 client.end()
    })
  },
  //IoT平台mqtt连接参数初始化
 initMqttOptions(deviceConfig) {

    //CONNECT参数,https://github.com/mqttjs/MQTT.js#connect
    const options = {
      keepalive: 60, //60s
      clean: true, //cleanSession不保持持久会话
      protocolVersion: 4 //MQTT v3.1.1
    }
    //1.生成clientId,username,password
    options.host = "192.168.1.xxx";
    options.port = 12345;
    options.password = "ppppppp";
    options.username = "uuuuuuuuusername";
    options.clientId='mqttjs_' + Math.random().toString(16).substr(2, 8);
    return options;
  },

 

 

解决:

https://developers.weixin.qq.com/community/develop/doc/000ccaaad50128d1a90acb45b5bc00

//mqtt.connect('wx://xxxxxxxxxx', options);

//wx://   xx.xx.xxxxxxx

//协议版本  链接地址

//微信小程序这个版本 作者自己封装了一层 wx表示普通的ws协议连接 wxs表示加密之后的wss协议连接。

 

小程序最多只能有5个socket连接,所以要在合理的组件生命周期内关闭页面的mqtt连接,参考:

https://blog.csdn.net/weixin_44659356/article/details/107035456?utm_medium=distribute.pc_relevant_t0.none-task-blog-OPENSEARCH-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-OPENSEARCH-1.channel_param

 


版权声明:本文为konnysnow原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。