基于MQTT实现的软件硬件通信协议
文章目录
前言
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
一、MQTT是什么?
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
二、使用步骤
1.引入库
代码如下(示例):
var mqtt=require('../../utils/mqtt.min.js')
connect(){
const clientId = 'mqttjs_' + Math.random().toString(16).substr(2, 8)
const myoptions={
connectTimeout:4000,
clientId:'按照需要填写',
port:8083,
username:"按照需要填写",
password:"按照需要填写"
}
console.log('Connecting mqtt client')
const client=mqtt.connect('wx://服务器地址',myoptions)
console.log(client)
client.on('connect', () => {
console.log('Client connected:' + clientId)
client.subscribe('接收主题', { qos: 0 },function(err){
if(!err){
console.log('订阅成功')
}
})
})
client.on('message', (topic, message, packet) => {
console.log("收到")
console.log("消息:")
console.log(message.toString())
//console.log(JSON.parse(message.toString()))
console.log("主题:")
console.log(topic)
})
client.on('error', (err) => {
console.log('Connection error: ', err)
client.end()
})
client.on('reconnect', () => {
console.log('Reconnecting...')
})
}
总结
使用MQTT实现软件硬件的连接实现发布订阅消息的功能