MQTT(Message Queuing Telemetry Transport)服务器是一种实现 MQTT 协议的服务器软件。MQTT 是一种轻量级的、发布/订阅模式的消息传输协议,通常用于物联网(IoT)应用中的设备通信。MQTT 服务器负责接收来自客户端的消息,将消息传送给订阅了相关主题的客户端,并管理客户端之间的连接。
1、使用Docker搭建EMQX MQTT服务器
Docker 是一种容器化平台,用于构建、部署和运行应用程序。它允许开发人员将应用程序及其依赖项打包到一个称为容器的独立单元中,从而实现轻量级、可移植和可扩展的应用程序交付。
使用Docker搭建常见的web服务很简单,MQTT同样拥有Docker镜像,我们只需要将MQTT的镜像拉下来直接创建容器实例即可。
不会使用Docker的请移步:
docker安装教程
编写docker-compose.yml文件:
version: '3'
services:
emqx:
image: emqx/emqx
container_name: emqx
ports:
- "1883:1883" # 将 EMQ X 的 MQTT 端口映射到宿主机的 1883 端口
- "8081:8081" # 将 EMQ X 的 HTTP API 端口映射到宿主机的 8081 端口
- "8883:8883" # 将 EMQ X 的 MQTT over SSL 端口映射到宿主机的 8883 端口
- "8083:8083" # 将 EMQ X 的 WebSocket 端口映射到宿主机的 8083 端口
- "18083:18083" # 将 EMQ X 的 Dashboard 端口映射到宿主机的 18083 端口
environment:
- EMQX_LISTENER__TCP__EXTERNAL=1883
- EMQX_LISTENER__WS__EXTERNAL=8083
- EMQX_LISTENER__SSL__EXTERNAL=8883
- EMQX_HTTP__PORT=8081
- EMQX_NODE__DIST_LISTEN_MAX=6379
- EMQX_LOADED_PLUGINS=emqx_management,emqx_dashboard
restart: always # 在容器退出时始终重新启动 EMQ X 容器
启动:
docker compose up -d
查看容器:
docker compose ps
成功启动:
地址就是运行EMQX的地址,根据端口映射规则进行访问:
http:ip+port
默认的管理端口是18083
EXQX的默认账户是admin、密码是public