一. emqttd介紹
emqttd 是用erlang實現的mqtt協議服務端,主要支持發布訂閱功能。mqtt的優勢有如下幾點:
- 可靠傳輸。MQTT可以保證消息可靠安全的傳輸,並可以與企業應用簡易集成。
- 消息推送。支持消息實時通知、豐富的推送內容、靈活的Pub-Sub以及消息存儲和過濾。
- 低帶寬、低耗能、低成本。占用移動應用程序帶寬小,並且帶寬利用率高,耗電量較少。
二. 編譯安裝
首先到github下clone下源碼:
## 1. 克隆下源碼
git clone https://github.com/emqtt/emqttd.git
## 2. 編譯(由於寫好了Makefile,所以不用使用rebar)
make
## 3. 發布
make dist
發布完成后,會在emqttd/rel目錄下存在一個emqttd的目錄,打包這個目錄就可以很方便的在機器上使
用了。
三. 基本操作
由於使用的是rebar進行編譯發布,所以應用的控制非常方便,基本操作如下:
##啟動emqttd節點
./bin/emqttd start
##重啟emqttd節點
./bin/emqttd restart
##更多操作命令可以使用./bin/emqttd 查看
./bin/emqttd
好了,一個基本的mqtt協議的server端就搭建好了,現在我們需要使用客戶端進行連接,為了方便我們
使用自帶的插件emqttd_dashboard進行基本操作與查看。
##首先進入到代碼所在的emqttd目錄,然后進入到插件所在的目錄.
cd plugins/
##克隆下插件代碼
git clone https://github.com/emqtt/emqttd_dashboard.git
##,退回到上層目錄,進行make
cd ..
make
##加載插件
cd rel/emqttd
./bin/emqttd_ctl plugins load emqttd_dashboard
到此,我們就可以使用http客戶端了,使用瀏覽器打開網址127.0.0.1:18083,提示輸入密碼,初始用
戶名密碼是admin,admin。在websocket一欄可以創建客戶端進行訂閱和發布消息。
看了下插件登錄代碼發現兩個問題:
- 后端用的list_to_atom把用戶名轉為atom再進行查找。如果別人用不同的用戶名嘗試的話會創建很多atom。(已提issue)
- 密碼貌似明文傳輸,沒細看。
四.相關資料
1.mqtt協議
2.emqttd官網