目標實現一個簡單的消息推送平臺android
服務器(Ubuntu 14.04.1 LTS)基於EMQTTD(https://github.com/emqtt/emqttd)源碼實現,客戶端基於android。git
一、EMQTTD是erlang實現的,因此第一步先搭建erlang的開發環境github
若是直接選擇apt-get install 安裝erlang OTP的,版本較低R15,運行最新的EMQTTD會有問題。建議直接下載最新源碼編譯安裝,步驟以下web
apt-get install build-essential瀏覽器
sudo apt-get install libncurses5-dev
sudo apt-get install libssl-dev
./configure && make
sudo make install服務器
二、下載EMQTTD,安裝編譯websocket
git clone https://github.com/emqtt/emqttd.gitcurl
cd emqttd && make && make distsocket
三、安裝EMQTTD插件(最新版本已經集成插件)性能
cd plugins/
git clone https://github.com/emqtt/emqttd_dashboard.git
cd ..
make
##加載插件
cd rel/emqttd
./bin/emqttd_ctl plugins load emqttd_dashboard
安裝完畢後就能夠經過瀏覽器訪問emqttd(http://localhost:18083),在websocket一欄能夠建立客戶端進行訂閱和發佈消息。
./bin/emqttd_ctl users add lxs lxs
四、客戶端(https://github.com/greatitman/mqttclient.git)
如今安裝便可
五、功能測試
客戶端運行後會訂閱響應的topic,這時能夠經過插件或curl命令進行消息推送操做
curl -v --basic -u root:passwd -d "qos=1&retain=0&topic=tokudu&message=hello EMQTTD" -k http://172.22.197.150:8083/mqtt/publish
六、性能測試
下載emqttd benchmark(git clone https://github.com/emqtt/emqtt_benchmark)
編譯,直接執行make
進行測試:
./emqtt_bench_sub --help
./emqtt_bench_sub -c 50000 -i 10 -t bench/%i -q 2
./emqtt_bench_pub -c 100 -I 10 -t bench/%i -s 256
done