vue中使用mqtt

481 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第9天,点击查看活动详情

先定义mqtt需要用到的参数

// mqtt连接参数
const mqttState = {
    url: 'http://xxx.xxx.xx:xxxx',
    clean: true,
    connectTimeout: 3000,
    reconnectPeriod: 0,
    client: "",
    arr: []
}
  • url: mqtt的请求路径

  • clean:连接完成后,是否清理连接痕迹 这里有一个坑,注意要clear掉,不然在qos0的时候,会在emq上有很多痕迹的,日积月累,带来的负荷也不小 ce9ed4c21dd2276eb9c0335b9ad4010.png

  • connectTimeout: 连接等待时间 单位ms

  • reconnectPeriod: 设置为0,则不会超时重连,主要看具体的业务需求

ac98a2aff5ea7d1b1126a0012a140f5.png

连接mqtt

mqttState.client = mqtt.connect(mqttState.url, {
    'clean': mqttState.clean,
    'connectTimeout': mqttState.connectTimeout,
    'reconnectPeriod': mqttState.reconnectPeriod,
    'clientId': `mqtt_${Math.random().toString(16).slice(3)}`,
    'username': 'XXX',
    'password': 'SSSS'
})
mqttState.client.on('connect', (r, e) => {
    console.log('连接成功')
})
  • client_id最好使用随机数,不然会找到曾经的topic,就会串号了。 至此,基本mqtt就已经连接成功了。

一些具体的用法和事例

API

由于公司跟iot硬件相关联系紧密,所以这种长短连接接触不少,很多内容涉及公司机密,不便透露,有问题可以找我沟通,我遇到过或者解决过的,都会倾囊相助的。

最后

公众号:小何成长,佛系更文,都是自己曾经踩过的坑或者是学到的东西

有兴趣的小伙伴欢迎关注我哦,我是:何小玍。大家一起进步鸭