跳到主要内容

监听器配置

监听器定义了 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 <= 0messages_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_filekey_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 用户列表