eclipse-mosquitto/mosquitto

GitHub: eclipse-mosquitto/mosquitto

开源轻量级 MQTT 消息代理,支持 MQTT 5.0/3.1.1/3.1 协议,附带 C/C++ 客户端库和实用工具。

Stars: 10682 | Forks: 2595

# Eclipse Mosquitto 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 的更多信息: - 社区页面: - MQTT v3.1.1 标准: - MQTT v5.0 标准: Mosquitto 项目信息可在以下位置找到: - 主页: - 查找现有 bug 或提交新 bug: - 源代码仓库: 还有一个公共测试服务器,地址为 ## 安装 有关在各种平台上安装二进制文件的详细信息,请参阅 。 ## 快速入门 如果您已经安装了二进制包,broker 应该已经自动启动。如果没有,可以使用一个非常基础的配置启动它: ``` mosquitto ``` 然后使用 `mosquitto_sub` 订阅一个主题: ``` 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 公开可用时以匿名访问的方式运行它。 有关如何执行此操作的详细信息,请查看可用的[身份验证方法](https://mosquitto.org/documentation/authentication-methods/)以及[动态安全插件](https://mosquitto.org/documentation/dynamic-security/)。 ## 文档 有关 broker、客户端和客户端库 API 的文档可以在 man 手册页中找到,这些页面也可在线访问,地址为 。还有一些页面介绍了 MQTT 的功能、用于处理用户名/密码的 `mosquitto_passwd` 实用工具,以及 broker 可用的配置文件选项说明。 详细的客户端库 API 文档可以在 找到。 ## 从源代码构建 对于最终用户,从源代码构建的推荐途径是从 下载归档文件。 在 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 构建中启用/禁用特定插件的构建。 ### 构建 mosquitto - 使用 vcpkg 您可以使用 [vcpkg](https://github.com/Microsoft/vcpkg) 依赖管理器下载并安装 mosquitto: ``` git clone https://github.com/Microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh ./vcpkg integrate install ./vcpkg install mosquitto ``` vcpkg 中的 mosquitto 端口由 Microsoft 团队成员和社区贡献者保持最新。如果版本过期,请在 vcpkg 仓库中[创建 issue 或 pull request](https://github.com/Microsoft/vcpkg)。 ## 鸣谢 Mosquitto 由 Roger Light 编写。社区中的其他人在代码和其他帮助方面做出了巨大贡献。
标签:Bash脚本, C/C++, Eclipse, IoT, LangChain, Mosquitto, MQTT 5.0, Pub/Sub, 中间件, 事务性I/O, 内核驱动, 发布/订阅, 安全测试工具, 实时通信, 客户端加密, 客户端加密, 嵌入式, 开源, 服务器, 消息代理, 消息传输, 消息队列, 物联网, 网络协议, 轻量级