返回资讯中心
外部精选
软件工程
#开发者实时流

Eclipse Mosquitto:开源 MQTT 消息代理

来源标题:Eclipse Mosquitto – An open source MQTT broker

Eclipse Mosquitto 是 MQTT 协议 5.0、3.1.1 和 3.1 版本的开源服务器实现。它附带 C/C++ 客户端库,以及 mosquitto_pub、mosquitto_sub 等发布订阅工具和 mosquitto_ctrl 等管理程序。还提供公共测试服务器 test.mosquitto.org。

Hacker News 最新gregsadetsky2026/11/15 · 今天11 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

Mosquitto 是 MQTT 协议 5.0、3.1.1 和 3.1 版本服务器的开源实现。它还包含 C 和 C++ 客户端库、用于发布和订阅的 mosquitto_pub、mosquitto_rr 和 mosquitto_sub 工具,以及用于协助管理 broker 的 mosquitto_ctrl、mosquitto_signal 和 mosquitto_passwd 应用程序。有关 MQTT 的更多信息,请参阅以下链接:

Mosquitto 项目信息可在以下位置获取:

此外,还有一个公共测试服务器,地址为 https://test.mosquitto.org/

有关在各平台上安装二进制包的详细信息,请参阅 https://mosquitto.org/download/。

如果你安装的是二进制包,broker 应该已经自动启动。如果没有,可以用一个非常基础的配置来启动它:

mosquitto_sub -t 'test/topic' -v

要发布消息:

mosquitto_pub -t 'test/topic' -m 'hello world'

请注意,以这种方式启动 broker 允许匿名/未认证访问,但仅限本机,因此实际上只适合初步测试。如果你希望其他计算机上的客户端能够连接,就需要提供配置文件。如果你是从二进制包安装的,可能已经在类似 /etc/mosquitto/mosquitto.conf 的位置有了配置文件。如果你是从源码编译的,可以编写配置文件,然后以 mosquitto -c /path/to/mosquitto.conf 运行。

要开始编写配置文件,你需要定义一个 listener,并考虑需要哪种认证方式。不建议在 broker 公开可用时以匿名访问方式运行。有关如何操作的详细信息,请查看可用的认证方法和动态安全插件。

broker、客户端和客户端库 API 的文档可在 man 手册页中找到,也可在 https://mosquitto.org/man/ 在线获取。此外还有一些页面,分别介绍 MQTT 的特性、用于处理用户名/密码的 mosquitto_passwd 工具,以及 broker 可用的配置文件选项说明。详细的客户端库 API 文档可在 https://mosquitto.org/api/ 找到。

要从源码构建,推荐最终用户从 https://mosquitto.org/download/ 下载归档包。

在 Windows 和 Mac 上,使用 cmake 构建。在其他平台上,直接运行 make 构建。Windows 用户另请参阅 README-windows.md。

如果你是从 git 仓库构建,文档不会预先构建好。使用 make binary 跳过构建 man 手册页,或在 Debian/Ubuntu 系统上安装 docbook-xsl。

cJSON - 必需

c-ares(Debian 系系统上为 libc-ares-dev)- 可选,通过 WITH_SRV=yes 启用

libedit - 用于 mosquitto_ctrl 交互式 shell - 可选,通过 WITH_EDITLINE=no 禁用

libmicrohttpd - 用于 broker 的 http api 支持 - 可选,通过 WITH_HTTP_API=no 禁用

openssl(Debian 系系统上为 libssl-dev)- 可选,通过 WITH_TLS=no 禁用

pthreads - 用于客户端库的线程支持。这是支持 mosquitto_loop_start() 和 mosquitto_loop_stop() 函数所必需的。如果在没有 pthread 支持的情况下编译,该库不保证线程安全。

sqlite3 - 用于 broker 的持久化支持 - 可选,通过 WITH_SQLITE=no 禁用

uthash / utlist - 提供了这些头文件的捆绑版本,通过 WITH_BUNDLED_DEPS=no 禁用其使用

xsltproc(Debian 系系统上为 xsltproc 和 docbook-xsl)- 仅在从 git 源码构建时需要 - 通过 WITH_DOCS=no 禁用

使用 CMake 构建时,也有用于启用/禁用功能的等效选项。在 CMake 构建中还可以启用/禁用构建特定的插件。

你可以使用 vcpkg 依赖管理器下载并安装 mosquitto:

git clone https://github.com/Microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh ./vcpkg integrate install ./vcpkg install mosquitto

vcpkg 中的 mosquitto port 由 Microsoft 团队成员和社区贡献者保持更新。如果版本过时,请在 vcpkg 仓库中创建 issue 或 pull request。

Mosquitto 由 Roger Light(roger@atchoo.org)编写。社区中的其他人也做出了大量贡献,包括代码和其他方面的帮助。

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →