mqtt協議在物聯網中的位置就不用說了,搞物聯網開發能夠使用這個協議就好像在打籃球懂得如何快速、巧妙傳球一樣,各個部件之間的訊息傳遞變得非常簡單方便,本人菜鳥也能發現其中的優勢,如果有朝一日成為牛肉能夠深入了解,覺得將會前途一片光明。廢話少說,下面從乙個肉菜鳥的角度開始解釋這個協議在nodejs下的簡單應用。
首先,mqtt的優勢大家應該都了解了,本協議特點是輕量級(開銷很小,固定長度的頭部是 2 位元組)、基於**的「發布/訂閱」模式的訊息傳輸、
協議簡潔、小巧、可擴充套件性強、省流量、省電,並且主要針對物聯網條件下不可靠、低計算能力的網路傳輸條件下,目前已經應用到企業領域,同時也有一定的缺點,例如網上有人扯淡說這個協議不夠成熟、實現較複雜、服務端元件rsmb不開源,部署硬體成本較高,然而這個在nodejs上卻不成立,服務端只需要有nodejs執行環境就可以非常方便的搭建mqtt服務。下面就把基本使用**進行說明:
服務端**:
varmosca = require('mosca');//構建自帶伺服器當mosca服務構建完成以後,可以對訊息進行發布,**如下varmqttserver =newmosca.server();//對伺服器端口進行配置,在此埠進行監聽
mqttserver.on('clientconnected'
,function(client));
/*** 監聽mqtt主題訊息
**/mqttserver.on('published'
,function(packet
, client) );
break;
case'other':
console.log('message-123'
, packet.payload.tostring());
break;
}});
mqttserver.on('ready'
,function());
varmqtt = require('mqtt');然後在其他客戶端能夠對訊息進行訂閱varclient = mqtt.connect('mqtt:');//連線到服務端
'presence');
varnum = 0
;varqtt={};//定義訊息(可以為字串、物件等)
qtt.aa='asds'
;qtt.bb='地方'
;setinterval(function());
// 'hello mqtt ' + (num++)
}, 1000);
varmqtt = require('mqtt');varclient= mqtt.connect('mqtt:');
client.subscribe('test'
,);//訂閱主題為test的訊息
client.on('message'
,function(topic, message) );
於是這個簡單的mqtt協議就在nodejs中實現了
varmqttserver =newmosca.server();//對伺服器端口進行配置,在此埠進行監聽mqttserver.on('clientconnected'
,function(client));
/*** 監聽mqtt主題訊息
**/mqttserver.on('published'
,function(packet
, client) );
break;
case'other':
console.log('message-123'
, packet.payload.tostring());
break;
}});
mqttserver.on('ready'
,function());
Mqtt協議的使用
mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,該協議構建於tcp ip協議上,由ibm在1999年發布。mqtt最大優點在於,可以以極少的 和有限的頻寬,為連...
MQTT在react native中的執行
mqtt 1 什麼是mqtt?mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,輕量,高效,具體,請參考菜鳥教程 2 mqtt的幾個重要概念 3 mqtt的幾個方...
車聯網場景中的 MQTT 協議
目前我國車聯網行業處於與 5g 技術的深度融合時期,隨著 5g 與 v2x 技術的發展成熟,未來的車聯網產業必將開啟新的成長空間。車聯網是物聯網技術在交通系統領域的典型應用,車聯網行業所涉及的相關技術領域的融合布局與協同發展在某種程度上與物聯網一脈相通。作為一家開源物聯網資料基礎設施軟體 商,emq...