Foreword
尝试了一下使用docker搭建EMQ 的mqtt服务器,比较简单
其他方式搭建,参考官方文档
https://docs.emqx.cn/cn/broker/latest/getting-started/install.html
服务端
搭建
EMQ用Docker搭建,比较简单,第一步pull下来对应的img,然后按照下面的命令启动即可
docker pull emqx/emqx:v4.0.0
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.0.0
安全组
由于是在腾讯云上搭建的,所以需要配置安全组
EMQ 将占用以下端口:
端口 | 说明 |
---|---|
1883 | MQTT/TCP 协议端口 |
11883 | MQTT/TCP 协议内部端口,仅用于本机客户端连接 |
8883 | MQTT/SSL 协议端口 |
8083 | MQTT/WS 协议端口 |
8084 | MQTT/WSS 协议端口 |
web后台
设置好了以后就可以通过web直接访问到后台界面了
http://服务器地址:18083/#/
默认后台账号是admin,密码是public,记得修改密码
就能看到下面的画面了
客户端
客户端各种都有,我这里只是初次尝试,调试,所以要一个有UI,好用的,具体各种语言的客户端API可以参考官方文档
https://docs.emqx.cn/cn/broker/latest/development/client.html
其他客户端看这里
https://docs.emqx.cn/cn/broker/latest/development/resource.html
MQTTX
这里我使用MQTTX作为测试客户端
https://github.com/emqx/MQTTX
都是国人写的,所以都能切换到中文,客户端也比较简单
- 名称,自定义
- Client ID 相当于客户端的uuid,需要唯一,一般自动生成即可
- 服务器地址,就填刚才的地址,这里只用填IP即可,要注意使用的协议是什么mqtt还是ws,加密还是没加密的
- 端口是取决于刚才上一步选择的协议,和前面搭建的时候的端口号有关系
- 账号密码,没有设置,留空即可
第一次使用就选择用ws好了,然后也能通过web面板中的Websocket工具里看到当前服务器的设置,可以参考一下
emqx.io
emqx.io是个web版本的客户端,不用下载安装,也比较方便
http://tools.emqx.io/
一样的填好信息以后,点击连接,然后订阅相同toipic,就可以发送信息给对方了
测试
设置好了以后,点击连接,就能连接到对应的服务器了
新建一个topic,名字类似于一个路径,然后发送的payload切成json格式,随便写点什么,点击发送即可
然后就能从web这边控制台信息里看到有人连接上了,并切对应的topic也能显示出来。
MQTTX这边先添加上一个订阅,然后对这个订阅发送一个信息
接着从服务器这边,也添加相同主题的订阅,然后也发送信息,可以看到双方都能正常接收到
Summary
EMQ初体验就这么多
Quote
https://www.jianshu.com/p/e5cf0c1fd55c
https://www.jianshu.com/p/ebbe25d1c4b2
https://bbs.huaweicloud.com/blogs/120069
https://www.liumwei.org/blog/mqtt-broker-Mosquitto