emqttd学习总结

一. 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一栏可以创建客户端进行订阅和发布消息。

看了下插件登录代码发现两个问题:

  1. 后端用的list_to_atom把用户名转为atom再进行查找。如果别人用不同的用户名尝试的话会创建很多atom。(已提issue)
  2. 密码貌似明文传输,没细看。

四.相关资料

1.mqtt协议

2.emqttd官网

原文地址:https://www.cnblogs.com/quitboy/p/4795738.html