Vue2使用mqtt

使用npm下载库,使用过高版本的mqtt库,vue2无法正常启动。亲测2.18.8版本可以使用。

npm install mqtt@2.18.8
// yarn
yarn add mqtt@2.18.8

在需要的页面引入mqtt

import mqtt from "mqtt"

在methods方法中添加openMqtt方法

openMqtt() {
    let clientId =  "test_" + new Date().getTime();
    let client = mqtt.connect('ws://XXXX', {
        clientId: clientId,
        username: 'admin',
        password: '123456'
    })
    let produceTopic = "topic/main";
    client.on('connect', () => {
        console.log('mqtt 已经连接成功');

        client.subscribe(produceTopic, (data) => {
            console.log("mqtt " + produceTopic + " 订阅成功");
        })

    });
    client.on('message', (topic, data) => {
        console.log("mqtt 收到" + topic + "的消息");
        console.log(data.toString());
        if (topic === produceTopic) {
            // 处理指定主题下的消息
            console.log(JSON.parse(data.toString()))
        }

    })
    client.on('reconnect', () => {
        console.log("mqtt reconnect");
    })
    client.on('offline', () => {
        console.log("mqtt offline");
    })
    client.on('error', (error) => {
        console.log("mqtt error");
        console.log(error);
    })
    client.on('close', () => {
        console.log("mqtt close");
    })
},

在mounted生命周期里添加该方法

this.openMqtt()

注:由于项目的产线环境为局域网使用的是http协议,所以mqtt的连接地址使用的是ws,ws在连接过程中的username和password都是非必填项。

GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐