参考资料

  1. Ruby 是一种动态、开源的编程语言
  2. httpd(Apache HTTP Server)是Apache软件基金会开发的开源Web服务器软件
  3. AlmaLinux 是一个开源、企业级的 Linux 发行版
  4. Jitsi Meet 是一个开源的视频会议解决方案
  5. Drupal 是一个开源的内容管理系统 (CMS),用于构建网站
  6. Docker 是一个开源的应用容器引擎
  7. irssi 是一个基于终端的开源 IRC 客户端,支持多服务器连接、可定制界面和脚本扩展。
  8. NATS 是一个高性能、轻量级的开源消息系统

Eclipse Mosquitto 是一个开源(EPL/EDL 许可证)的 MQTT 消息代理(broker)

Eclipse Mosquitto 简介

Eclipse Mosquitto 是一个开源(EPL/EDL 许可证)的 MQTT 消息代理(broker),轻量级且支持 MQTT 协议 v3.1、v3.1.1 和 v5.0。适用于物联网(IoT)场景。

特点

  1. 轻量高效:低资源占用,适合嵌入式设备。

  2. 协议支持:完整兼容 MQTT v3.1、v3.1.1 和 v5.0。

  3. 跨平台:支持 Linux、Windows、macOS 等。

  4. 安全功能:支持 TLS/SSL 加密、客户端认证(PSK、X.509)。

  5. 插件系统:支持动态模块扩展(如认证、日志)。

  6. 持久化:支持消息保留(Retain)和持久会话。

最新更新内容及时间

  • 最新版本:2.0.18(截至 2023 年 10 月)

    • 修复内存泄漏问题。

    • 优化 WebSocket 连接处理。

    • 更新 OpenSSL 兼容性。

    • 详细更新日志:GitHub Releases

下载地址

官网地址

https://mosquitto.org/

文档地址


Docker 安装示例

docker run -d -p 1883:1883 -p 9001:9001 -v /path/to/config:/mosquitto/config -v /path/to/data:/mosquitto/data eclipse-mosquitto

YAML 配置示例(通常使用 .conf 文件)

Mosquitto 默认使用 .conf 格式,但可通过工具转换 YAML。示例等效配置:

listener:
  port: 1883
  protocol: mqtt
allow_anonymous: false
password_file: /mosquitto/config/passwd
persistence: true
persistence_location: /mosquitto/data/

实际应使用 .conf 文件(如 mosquitto.conf):

listener 1883
allow_anonymous false
password_file /mosquitto/config/passwd
persistence true
persistence_location /mosquitto/data/

常见错误及解决

  1. 端口冲突

    • 错误:Error: Address already in use

    • 解决:更换端口或停止占用进程。

  2. 认证失败

    • 错误:Connection Refused: bad user name or password

    • 解决:检查 password_file 路径及格式(使用 mosquitto_passwd 生成)。

  3. 权限问题

    • 错误:Permission denied

    • 解决:确保 /mosquitto/data/mosquitto/log 目录可写。

  4. TLS 配置错误

    • 错误:SSL/TLS handshake failed

    • 解决:检查证书路径及权限,确认 cafile/certfile/keyfile 配置。

  5. WebSocket 连接失败

    • 错误:WebSocket upgrade failed

    • 解决:配置文件中添加 listener 9001 protocol websockets