监听器配置
监听器定义了 YedMQ 如何接收 MQTT 客户端与管理工具的请求。YedMQ 当前支持多种协议,以覆盖设备接入、浏览器接入和运维接口。
支持的协议
- TCP:标准 MQTT(默认端口
1883) - TCP-TLS:基于 TLS 的安全 MQTT(默认端口
8883) - WebSocket (WS):基于 WebSocket 的 MQTT(默认端口
8083) - WebSocket Secure (WSS):基于加密 WebSocket 的 MQTT(默认端口
8084) - API:REST 管理 API(默认端口
3456)
TCP 监听器
用于标准未加密 MQTT 连接。
[listener.tcp]
external = "0.0.0.0:1883"
[listener.tcp.rate_limit]
messages_rate = 1000
messages_burst = 100
external:监听地址与端口rate_limit.messages_rate:每秒允许的最大入站PUBLISH报文数rate_limit.messages_burst:限流窗口内允许的突发数量- 将
messages_rate <= 0或messages_burst <= 0设为关闭该监听器的发布限流
TCP-TLS 监听器
用于加密的 MQTT 连接。
[listener.tcp_tls]
external = "0.0.0.0:8883"
cert_file = "/path/to/server.crt"
key_file = "/path/to/server.key"
[listener.tcp_tls.rate_limit]
messages_rate = 1000
messages_burst = 100
external:TLS MQTT 的监听地址与端口cert_file:PEM 编码的证书链文件key_file:PEM 编码的私钥文件- 当前 Broker 配置真正接入的 TLS 字段是
cert_file与key_file
WebSocket 监听器
用于浏览器侧的 MQTT over WebSocket。
[listener.ws]
external = "0.0.0.0:8083"
[listener.ws.rate_limit]
messages_rate = 1000
messages_burst = 100
external:WS 监听地址与端口
WSS 监听器
用于加密的 MQTT over WebSocket。
[listener.wss]
external = "0.0.0.0:8084"
cert_file = "/path/to/server.crt"
key_file = "/path/to/server.key"
[listener.wss.rate_limit]
messages_rate = 1000
messages_burst = 100
external:WSS 监听地址与端口cert_file:证书链文件key_file:私钥文件
API 监听器
用于配置 REST 管理 API 及其 Basic Authentication 用户。
[listener.api]
external = "0.0.0.0:3456"
[listener.api.auth]
users = [
{ username = "admin", password = "change_me_in_production" }
]
external:管理 API 的监听地址与端口auth.users:允许访问/api/v1/*的 Basic Authentication 用户列表