MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是IBM開發的一個即時通信協議,有可能成爲物聯網的重要組成部分。該協議支持全部平臺,幾乎能夠把全部聯網物品和外部鏈接起來,被用來當作傳感器和制動器(好比經過Twitter讓房屋聯網)的通訊協議。
javascript
MQTT協議是爲大量計算能力有限,且工做在低帶寬、不可靠的網絡的遠程傳感器和控制設備通信而設計的協議,它具備如下主要的幾項特性: 一、使用發佈/訂閱消息模式,提供一對多的消息發佈,解除應用程序耦合; 二、對負載內容屏蔽的消息傳輸; 三、使用 TCP/IP 提供網絡鏈接; 四、有三種消息發佈服務質量: 「至多一次」,消息發佈徹底依賴底層 TCP/IP 網絡。會發生消息丟失或重複。這一級別可用於以下狀況,環境傳感器數據,丟失一次讀記錄無所謂,由於不久後還會有第二次發送。 「至少一次」,確保消息到達,但消息重複可能會發生。 「只有一次」,確保消息到達一次。這一級別可用於以下狀況,在計費系統中,消息重複或丟失會致使不正確的結果。 五、小型傳輸,開銷很小(固定長度的頭部是 2 字節),協議交換最小化,以下降網絡流量; 六、使用 Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制;
java
EMQ 是百萬級一站式物聯網消息服務平臺具體介紹能夠到EMQTTD官網查看www.emqtt.com/node
開發版:npm
穩定版:ubuntu
根據操做系統選擇對應版本的安裝包,這裏筆者的服務器是Ubuntu server 16.04 LTS 因此選擇了 Ubuntu16.04-DEB(64-bit) www.emqtt.com/downloads/2…bash
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成功ui
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
複製代碼