小程序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

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值