国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
MQTT協(xié)議在nodejs中的使用

MQTT協(xié)議在物聯(lián)網(wǎng)中的位置就不用說(shuō)了,搞物聯(lián)網(wǎng)開(kāi)發(fā)能夠使用這個(gè)協(xié)議就好像在打籃球懂得如何快速、巧妙傳球一樣,各個(gè)部件之間的消息傳遞變得非常簡(jiǎn)單方便,本人菜鳥(niǎo)也能發(fā)現(xiàn)其中的優(yōu)勢(shì),如果有朝一日成為牛肉能夠深入了解,覺(jué)得將會(huì)前途一片光明。廢話少說(shuō),下面從一個(gè)肉菜鳥(niǎo)的角度開(kāi)始解釋這個(gè)協(xié)議在NODEJS下的簡(jiǎn)單應(yīng)用。

首先,MQTT的優(yōu)勢(shì)大家應(yīng)該都了解了,本協(xié)議特點(diǎn)是輕量級(jí)(開(kāi)銷(xiāo)很小,固定長(zhǎng)度的頭部是 2 字節(jié))、基于代理的“發(fā)布/訂閱”模式的消息傳輸、協(xié)議簡(jiǎn)潔、小巧、可擴(kuò)展性強(qiáng)、省流量省電,并且主要針對(duì)物聯(lián)網(wǎng)條件下不可靠、低計(jì)算能力的網(wǎng)絡(luò)傳輸條件下,目前已經(jīng)應(yīng)用到企業(yè)領(lǐng)域,同時(shí)也有一定的缺點(diǎn),例如網(wǎng)上有人扯淡說(shuō)這個(gè)協(xié)議不夠成熟、實(shí)現(xiàn)較復(fù)雜、服務(wù)端組件rsmb不開(kāi)源,部署硬件成本較高,然而這個(gè)在nodejs上卻不成立,服務(wù)端只需要有nodejs運(yùn)行環(huán)境就可以非常方便的搭建MQTT服務(wù)。下面就把基本使用代碼進(jìn)行說(shuō)明:

服務(wù)端代碼:



var mosca = require('mosca');//構(gòu)建自帶服務(wù)器var MqttServer = new mosca.Server({    port: 8000});//對(duì)服務(wù)器端口進(jìn)行配置,在此端口進(jìn)行監(jiān)聽(tīng)MqttServer.on('clientConnected', function(client){//監(jiān)聽(tīng)連接    console.log('client connected', client.id);});/** * 監(jiān)聽(tīng)MQTT主題消息 **/MqttServer.on('published', function(packet, client) {//當(dāng)客戶(hù)端有連接發(fā)布主題消息    var topic = packet.topic;    console.log(packet);    switch(topic){        case 'test':            console.log('message-publish', packet.payload.toString());            //MQTT轉(zhuǎn)發(fā)主題消息            MqttServer.publish({topic: 'other', payload: 'sssss'});            break;        case 'other':            console.log('message-123', packet.payload.toString());            break;    }});MqttServer.on('ready', function(){當(dāng)服務(wù)開(kāi)啟時(shí)    console.log('mqtt is running...');});
當(dāng)mosca服務(wù)構(gòu)建完成以后,可以對(duì)消息進(jìn)行發(fā)布,代碼如下 

var mqtt = require('mqtt');var client = mqtt.connect('mqtt://192.168.0.182:8000');//連接到服務(wù)端//client.subscribe('presence');var num = 0;var qtt={};//定義消息(可以為字符串、對(duì)象等)qtt.aa='asds';qtt.bb='地方';setInterval(function (){//發(fā)布主題為‘test’的消息    client.publish('test',JSON.stringify(qtt),{qos:1, retain: true});// 'Hello mqtt ' + (num++)}, 1000);
然后在其他客戶(hù)端能夠?qū)ο⑦M(jìn)行訂閱

var mqtt = require('mqtt');var client= mqtt.connect('mqtt://192.168.0.182:8000');client.subscribe('test',{qos:1});//訂閱主題為test的消息client.on('message', function (topic, message) {    console.log(message.toString());});

于是這個(gè)簡(jiǎn)單的MQTT協(xié)議就在nodejs中實(shí)現(xiàn)了


var MqttServer = new mosca.Server({    port: 8000});//對(duì)服務(wù)器端口進(jìn)行配置,在此端口進(jìn)行監(jiān)聽(tīng)MqttServer.on('clientConnected', function(client){//監(jiān)聽(tīng)連接    console.log('client connected', client.id);});/** * 監(jiān)聽(tīng)MQTT主題消息 **/MqttServer.on('published', function(packet, client) {//當(dāng)客戶(hù)端有連接發(fā)布主題消息    var topic = packet.topic;    console.log(packet);    switch(topic){        case 'test':            console.log('message-publish', packet.payload.toString());            //MQTT轉(zhuǎn)發(fā)主題消息            MqttServer.publish({topic: 'other', payload: 'sssss'});            break;        case 'other':            console.log('message-123', packet.payload.toString());            break;    }});MqttServer.on('ready', function(){當(dāng)服務(wù)開(kāi)啟時(shí)    console.log('mqtt is running...');});
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
使用 MQTTnet 快速實(shí)現(xiàn) MQTT 通信
MQTT結(jié)構(gòu)分析
Realtime data with MQTT, Node.js, MQTTClient.js and Socket.IO
微信小程序藍(lán)牙API使用詳解,完整版
解讀Nodejs多核處理模塊cluster
HTML5
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服