目标实现一个简单的消息推送平台
服务器(Ubuntu 14.04.1 LTS)基于EMQTTD(https://github.com/emqtt/emqttd)源码实现,客户端基于android。
1、EMQTTD是erlang实现的,所以第一步先搭建erlang的开发环境
如果直接选择apt-get install 安装erlang OTP的,版本较低R15,运行最新的EMQTTD会有问题。建议直接下载最新源码编译安装,步骤如下
apt-get install build-essential
sudo apt-get install libncurses5-dev
sudo apt-get install libssl-dev
./configure && make
sudo make install
2、下载EMQTTD,安装编译
git clone https://github.com/emqtt/emqttd.git
cd emqttd && make && make dist
3、安装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
4、客户端(https://github.com/greatitman/mqttclient.git)
现在安装即可
5、功能测试
客户端运行后会订阅响应的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
6、性能测试
下载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