跳到主要内容

监听器配置

监听器定义了 YedMQ 如何接收来自 MQTT 客户端和管理工具的请求。YedMQ 支持多种协议以满足不同的网络需求。

支持的协议

  • TCP: 标准 MQTT (默认端口 1883)
  • TCP-TLS: 基于 TLS/SSL 的安全 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 = 1000
  • external: 绑定的 IP 地址和端口。0.0.0.0 表示监听所有网络接口。
  • rate_limit.messages: 该监听器每秒允许的最大消息数。

TCP-TLS 监听器

配置加密的 MQTT 连接。

[listener.tcp_tls]
external = "0.0.0.0:8883"
cert_file = "/path/to/cert.pem"
key_file = "/path/to/key.pem"
cacert_file = "/path/to/ca.pem" # 可选
  • external: TLS 连接的绑定地址和端口。
  • cert_file: PEM 编码的证书链文件路径。
  • key_file: PEM 编码的私钥文件路径。
  • cacert_file: 用于验证客户端证书的 CA 证书文件路径(如果启用)。

WebSocket (WS) 监听器

配置基于 WebSocket 的 MQTT,适用于浏览器客户端。

[listener.ws]
external = "0.0.0.0:8083"
  • external: WebSocket 连接的绑定地址和端口。

WebSocket Secure (WSS) 监听器

配置基于加密 WebSocket 的 MQTT。

[listener.wss]
external = "0.0.0.0:8084"
cert_file = "/path/to/cert.pem"
key_file = "/path/to/key.pem"
cacert_file = "/path/to/ca.pem" # 可选
  • external: 安全 WebSocket 连接的绑定地址和端口。
  • cert_file: 证书文件路径。
  • key_file: 私钥文件路径。

API 监听器

配置 REST 管理 API 及其身份验证。

[listener.api]
external = "0.0.0.0:3456"

[listener.api.auth]
users = [
{ username = "admin", password = "password" }
]
  • external: REST API 的绑定地址和端口。
  • auth.users: 用于 Basic Authentication 的授权用户列表(用户名和密码)。