溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在uniapp項目中使用mqtt

發(fā)布時間:2021-05-18 10:41:05 來源:億速云 閱讀:740 作者:小新 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關怎么在uniapp項目中使用mqtt,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、uniapp插件市場的參考插件

  https://ext.dcloud.net.cn/plugin?id=854

二、具體引入過程

1.安裝mqtt和uuid

在uniapp項目根目錄下分別運行安裝mqtt和uuid的命令行,因為后面會用uuid生成mqtt的clientId,所以這邊就一起安裝了。

npm install mqtt@3.0.0

npm install uuid

怎么在uniapp項目中使用mqtt

怎么在uniapp項目中使用mqtt

Ps.

①我這里和uniapp提供的插件安裝的mqtt版本一樣,我也嘗試裝了最新的版本,會報錯,emmmmm...........

②如果沒有pakage.json,安裝是會提示報錯,但是不影響安裝使用。如果想方便一點,下次拉代碼直接安裝的話,可以自己在項目根目錄下加一個pakage.json文件,添加如下內(nèi)容:

{
  "name": "",
  "version": "1.0.0",
  "description": "",
  "author": "",
  "license": "MIT",
  "dependencies": {
    "mqtt": "^3.0.0",
    "uuid": "^8.3.0"
  },
  "devDependencies": {},
  "scripts": {}
}

2.頁面引入mqtt并調(diào)用

①mqtt連接配置,放在/utils/mqtt.js里面,全局可用。

export const MQTT_IP = '192.168.9.128:8083/mqtt'//mqtt地址端口
const MQTT_USERNAME = 'public'//mqtt用戶名
const MQTT_PASSWORD = 'public'//密碼

export const MQTT_OPTIONS = {
    connectTimeout: 5000,
    clientId: '',
    username: MQTT_USERNAME,
    password: MQTT_PASSWORD,
    clean: false
}

②vue頁面引用mqtt

mqtt里面的clientId用uuid生成唯一標識碼,防止不同頁面訂閱不同主題時數(shù)據(jù)出現(xiàn)粘連。

<script>
    import { v4 } from 'uuid';
    import {
        MQTT_IP,
        MQTT_OPTIONS
    } from '@/utils/mqtt.js';
    var mqtt = require('mqtt/dist/mqtt.js')
    var client
    export default {
        data() {
            return {
                topic: '' //要訂閱的主題
            }
        },
        mounted() {this.connect() //連接
        },
        methods: {
            connect() {
                MQTT_OPTIONS.clientId = v4()
                var that = this
                // #ifdef H5
                client = mqtt.connect('ws://' + MQTT_IP, MQTT_OPTIONS)
                // #endif
                // #ifdef MP-WEIXIN||APP-PLUS
                client = mqtt.connect('wx://' + MQTT_IP, MQTT_OPTIONS)
                // #endif
                client.on('connect', function() {
                    console.log('連接成功')
                    client.subscribe(that.topic, function(err) {
                        if (!err) {
                            console.log('訂閱成功')
                        }
                    })
                }).on('reconnect', function(error) {
                    console.log('正在重連...', that.topic)
                }).on('error', function(error) {
                    console.log('連接失敗...', error)
                }).on('end', function() {
                    console.log('連接斷開')
                }).on('message', function(topic, message) {
                    console.log('接收推送信息:', message.toString())
                })
            }
        }
    }
</script>

3.運行結(jié)果

數(shù)據(jù)實時變化。

怎么在uniapp項目中使用mqtt

關于“怎么在uniapp項目中使用mqtt”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI