目录
因为apisix转发mqtt-proxy需要mqtt服务器,所以学习了一下mqtt
(一)网上免安装的mqtt服务器
1、在线领取mqtt服务器
2、在线mqtt客户端
Easy-to-Use Online MQTT Client | Try Now
如果服务器网络是可以访问外网,测试mqtt,可以直接用上面的免费服务器。但是因为公司开发环境不能连外网,所以必须要安装mqtt服务器。
(二)mqtt服务器安装
1、下载镜像
1.1、如果服务器可以访问外网
docker pull emqx
查看镜像 docker images
1.2、如果服务器不能访问外网
可以在本地docker下载镜像,
(1)本地启动docker desktop(widow上直接安装使用的docker)
(2)docker pull emqx
(3)打tar包
docker save -o d://mqtt.tar emqx
(4)把tar包上传服务器
(5)load上传的tar包
docker load < /opt/mqtt.tar
(6)查看镜像
2、启动
docker run -d -it --name=mqtt --restart=always -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 --env ALLOW_NONE_AUTHENTICATION=yes emqx
注意:启动的时候要做端口映射,要不然访问不了18083
如果启动的时候,忘记做端口映射,可以用下面步骤:
(1)docker stop mqtt容器
(2)docker rmi -f mqtt容器
(3)重新执行上面的docker run 命令
docker run 命令用于创建并启动一个新的容器。
2.1、docker run 语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数说明:
-
-d
: 后台运行容器并返回容器 ID。 -
-it
: 交互式运行容器,分配一个伪终端。 -
--name
: 给容器指定一个名称。 -
-p
: 端口映射,格式为host_port:container_port
。 -
-v
: 挂载卷,格式为host_dir:container_dir
。 -
--rm
: 容器停止后自动删除容器。 -
--env
或-e
: 设置环境变量。 -
--network
: 指定容器的网络模式。 -
--restart
: 容器的重启策略(如no
、on-failure
、always
、unless-stopped
)。 -
-u
: 指定用户。
3、网页访问
http://ip:18083/#/login?to=/authorization
初始账号密码 admin public
4、postman连接以及发送消息(可以不操作)
5、下载客户端(可以不操作)
下载mqttx