MQTT介紹
MQTT(Message Queuing Telemetry Transport,訊息佇列遙測傳輸)是IBM開發的一個即時通訊協議,有可能成為物聯網的重要組成部分。該協議支援所有平臺,幾乎可以把所有聯網物品和外部連線起來,被用來當做感測器和制動器(比如通過Twitter讓房屋聯網)的通訊協議。
MQTT協議是為大量計算能力有限,且工作在低頻寬、不可靠的網路的遠端感測器和控制裝置通訊而設計的協議,它具有以下主要的幾項特性:
1、使用釋出/訂閱訊息模式,提供一對多的訊息釋出,解除應用程式耦合;
2、對負載內容遮蔽的訊息傳輸;
3、使用 TCP/IP 提供網路連線;
4、有三種訊息釋出服務質量:
“至多一次”,訊息釋出完全依賴底層 TCP/IP 網路。會發生訊息丟失或重複。這一級別可用於如下情況,環境感測器資料,丟失一次讀記錄無所謂,因為不久後還會有第二次傳送。
“至少一次”,確保訊息到達,但訊息重複可能會發生。
“只有一次”,確保訊息到達一次。這一級別可用於如下情況,在計費系統中,訊息重複或丟失會導致不正確的結果。
5、小型傳輸,開銷很小(固定長度的頭部是 2 位元組),協議交換最小化,以降低網路流量;
6、使用 Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制;
EMQTT介紹
EMQ 是百萬級一站式物聯網訊息服務平臺具體介紹可以到EMQTTD官網檢視www.emqtt.com/
EMQTT 安裝及測試
emq 版本
開發版:
穩定版:
根據作業系統選擇對應版本的安裝包,這裡筆者的伺服器是Ubuntu server 16.04 LTS 所以選擇了 Ubuntu16.04-DEB(64-bit) www.emqtt.com/downloads/2…
安裝
1.下載安裝包
wget http://www.emqtt.com/downloads/2318/ubuntu16_04-deb複製程式碼
sudo dpkg -i 此處為你下載的安裝包名稱.deb複製程式碼
3.應用命令
service emqttd start
//service emqttd start|stop|restar複製程式碼
4.訪問測試
訪問 http://你主機的IP:18083/ 如果看到如下介面證明啟動emqttd成功
測試
1.安裝mqtt支援庫
npm install mqtt --save //nodejs mqtt支援庫複製程式碼
2.demo
var client = connect('mqtt://94.191.78.55') client.on('connect',
function() {
client.subscribe('/server',
function(err) {
if (!err) {
client.publish('/server', 'Hello mqtt')
}
})
}) client.on('message',
function(topic, message) {
// message is Buffer
console.log(message.toString(), topic) client.close();
})
複製程式碼
3.終端可以看到輸出
Hello mqtt /server
複製程式碼