如何在uniapp項(xiàng)目中使用mqtt
由于要取一些實(shí)時(shí)數(shù)據(jù)并在手機(jī)app上展示,就想到用mqtt進(jìn)行即時(shí)通訊。
下面附上uniapp中引入mqtt的全過(guò)程:
一、uniapp插件市場(chǎng)的參考插件
https://ext.dcloud.net.cn/plugin?id=854
二、具體引入過(guò)程
1.安裝mqtt和uuid
在uniapp項(xiàng)目根目錄下分別運(yùn)行安裝mqtt和uuid的命令行,因?yàn)楹竺鏁?huì)用uuid生成mqtt的clientId,所以這邊就一起安裝了。
npm install mqtt@3.0.0 npm install uuid


Ps.
①我這里和uniapp提供的插件安裝的mqtt版本一樣,我也嘗試裝了最新的版本,會(huì)報(bào)錯(cuò),emmmmm...........
②如果沒(méi)有pakage.json,安裝是會(huì)提示報(bào)錯(cuò),但是不影響安裝使用。如果想方便一點(diǎn),下次拉代碼直接安裝的話,可以自己在項(xiàng)目根目錄下加一個(gè)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.頁(yè)面引入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頁(yè)面引用mqtt
mqtt里面的clientId用uuid生成唯一標(biāo)識(shí)碼,防止不同頁(yè)面訂閱不同主題時(shí)數(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('連接斷開(kāi)')
}).on('message', function(topic, message) {
console.log('接收推送信息:', message.toString())
})
}
}
}
</script>
3.運(yùn)行結(jié)果
數(shù)據(jù)實(shí)時(shí)變化。

以上就是uniapp中使用mqtt的方法分享。
以上就是如何在uniapp項(xiàng)目中使用mqtt的詳細(xì)內(nèi)容,更多關(guān)于uniapp使用mqtt的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
ionic2自定義cordova插件開(kāi)發(fā)以及使用(Android)
這篇文章主要為大家詳細(xì)介紹了ionic2自定義cordova插件開(kāi)發(fā)以及使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
JavaScript Event學(xué)習(xí)第六章 事件的訪問(wèn)
在這一章我會(huì)講解如何去訪問(wèn)一個(gè)事件對(duì)象。2010-02-02
javascript設(shè)計(jì)模式 – 解釋器模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 解釋器模式,結(jié)合實(shí)例形式分析了javascript解釋器模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
JavaScript實(shí)現(xiàn)打印星型金字塔功能實(shí)例分析
這篇文章主要介紹了JavaScript實(shí)現(xiàn)打印星型金字塔功能,結(jié)合具體實(shí)例形式分析了javascript針對(duì)輸出任意給定行數(shù)星型金字塔圖形的原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09
用JS將搜索的關(guān)鍵字高亮顯示實(shí)現(xiàn)代碼
這篇文章介紹了JS將搜索的關(guān)鍵字高亮顯示實(shí)現(xiàn)代碼,有需要的朋友可以參考一下2013-11-11

