轻量级通信:各种编程语言中的MQTT库

轻量级通信:各种编程语言中的MQTT库缩略图

当谈到MQTT(Message Queuing Telemetry Transport)时,有许多不同编程语言的库和工具可供选择,以便轻松地集成MQTT通信协议到您的项目中。MQTT是一种轻量级的消息协议,特别适用于物联网(IoT)和低带宽、高延迟或不可靠网络环境。本文将介绍一些流行的编程语言以及它们的MQTT库和工具,帮助您在各种环境中实现可靠的消息通信。

C/C++:

编程语言库/工具名称详细信息
CEclipse Paho C通用MQTT C库。
CEclipse Paho Embedded C用于嵌入式系统的MQTT C库。
ClibmosquittoMosquitto MQTT代理的C库。
Clibemqtt用于嵌入式系统的C MQTT客户端库。
CMQTT-C便携式MQTT C客户端,适用于嵌入式系统和PC。
CwolfMQTT嵌入式C MQTT客户端。
CSharkMQTT嵌入式C MQTT客户端。
Clibcurllibcurl具有基本的发布和订阅支持。
CMQTT over lwIP用于嵌入式系统的MQTT C客户端,使用FreeRTOS,lwIP和mbedtls。
Clibsmartfactory支持智能工厂和工业4.0技术的库,包括MQTT客户端实现。
Clibumqtt基于libev的轻量级和完全异步的C MQTT客户端库。
C++Eclipse Paho C++通用MQTT C++库。
C++libmosquittoppMosquitto MQTT代理的C++库。
C++Eclipse Paho Embedded C++用于嵌入式系统的MQTT C++库。
C++mqtt_cpp基于C++14和Boost.Asio的MQTT客户端和服务器库,支持MQTT v3.1.1和v5。
C++async_mqtt基于C++17和Boost.Asio的MQTT客户端和服务器库,支持MQTT v3.1.1和v5.0。
C++eMQTT5MQTT 5.0客户端。

Python:

编程语言库/工具名称详细信息
PythonEclipse Paho Python最初由Mosquitto Python客户端编写。
Pythongmqtt异步Python 3 MQTT客户端库。
Pythonnyamuk一个轻量级的Python MQTT客户端库。
PythonMQTT for twisted python用于Twisted Python的MQTT库。
PythonHBMQTT高性能Python MQTT客户端库,支持MQTT 5.0和MQTT 3.1.1。
Pythonmqttools用于Python的MQTT协议工具和客户端库。

Java:

编程语言库/工具名称详细信息
JavaActiveMQ ClientApache ActiveMQ的Java客户端库。
JavaEclipse Paho Java通用MQTT Java库。
JavaFusesource mqtt-clientFusesource MQTT客户端库。
JavaMeQanTTJava MQTT客户端库,支持Android和Processing。
JavamoquetteJava实现的MQTT代理库。
JavaMqttWkJava MQTT客户端库。
JavaHiveMQ MQTT Client高性能Java MQTT客户端库,支持MQTT 5.0和MQTT 3.1.1。
JavaIA92 (已弃用)IBM IA92支持包,现已弃用。
JavaQatja用于Android和Processing的Java客户端库,支持MQTT 3.1.1。
JavaSentienz Akiro MQTT ClientJava MQTT代理客户端库,支持MQTT 3.1.1。
Javavertx-mqtt-client开源、高性能、非阻塞的Java MQTT客户端库,作为vert.x的JVM工具包的一部分。
JavaXenqtt包含客户端库、用于单元/集成测试的模拟代理以及支持企业需求的应用程序,如将一组服务器用作单个客户端、HTTP网关等。
JavaMicronaut MQTTMicronaut Framework和MQTT的集成。

Dart:

编程语言库/工具名称详细信息
Dartmqtt.dart用于Dart的MQTT客户端库。
Dartmqtt_clientDart的MQTT客户端库。

Delphi:

编程语言库/工具名称详细信息
DelphiDelphi-TMQTT2Delphi的MQTT客户端库。

Erlang:

编程语言库/工具名称详细信息
ErlangerlmqttErlang的MQTT客户端库。
ErlangemqttcErlang MQTT客户端库。
Erlangmqtt4erlErlang的MQTT客户端库。
Erlangmy-mqtt4erl (已更新的分支)Erlang的MQTT客户端库。
Erlangerl.mqtt.clientErlang的MQTT客户端库。

Elixir:

编程语言库/工具名称详细信息
Elixirhulaaki用于与MQTT代理通信的Elixir库(驱动程序),支持MQTT 3.1.1协议。
ElixirExmqttcemqttc库的Elixir包装器。
Elixirtortoise用Elixir编写的MQTT客户端。

Go:

编程语言库/工具名称详细信息
GoEclipse Paho Go通用MQTT Go库。
Gomqtt by jeffallenGo中的MQTT实现。
GoMQTT🤖适用于嵌入式系统的简单、小型MQTT实现。
Gonatiu-mqtt适用于嵌入式系统的简单、小型MQTT实现。

Haskell:

编程语言库/工具名称详细信息
Haskellmqtt-hsHaskell的MQTT库。
Haskellnet-mqtt (支持3.1.1和5.0客户端)Haskell的MQTT库。

Javascript/Node.js:

编程语言库/工具名称详细信息
JavaScript/Node.jsAscoltatori一个支持Redis、AMQP、MQTT和ZeroMQ的Node.js发布/订阅库,具有相同的API。
JavaScript/Node.jsEclipse Paho HTML5 JavaScript over WebSocket用于HTML5的JavaScript MQTT库,支持WebSocket。
JavaScript/Node.jsIBM-provided PhoneGap/Cordova MQTT plug-in for AndroidJavaScript API与Eclipse Paho HTML5 JavaScript相同。
JavaScript/Node.jsmqtt.jsJavaScript MQTT库。
JavaScript/Node.jsnode_mqtt_clientNode.js的MQTT客户端库。

LotusScript:

编程语言库/工具名称详细信息
LotusScriptMQTT From LotusScript用于LotusScript的MQTT库。

Lua:

编程语言库/工具名称详细信息
LuaBarracuda App Server's MQTT ClientBarracuda App Server的MQTT客户端库。
LuaEclipse Paho Lua通用Lua MQTT库。
Lualuamqtt纯Lua MQTT客户端。
Lualibumqttlibumqtt库的Lua绑定。
Lualua-mosquittolua-mosquitto库,对libmosquitto的绑定。

.NET/dotNET:

编程语言库/工具名称详细信息
.NET/dotNETHiveMQtt - The Spectacular C# MQTT Client for .NET非常出色的.NET C# MQTT客户端库。
.NET/dotNETKittyHawkMQ.NET平台的MQTT库。
.NET/dotNETMQTTnet通用.NET MQTT库。
.NET/dotNETMqttDotNet.NET平台的MQTT库。
.NET/dotNETnMQTT.NET MQTT库。
.NET/dotNETM2MQTT适用于.NET Micro Framework的MQTT库。
.NET/dotNETPaho.MqttDotnetPaho项目的.NET C#客户端。
.NET/dotNETStriderMqtt.NET平台的MQTT库。
.NET/dotNETxamarin mqttXamarin移动应用程序的MQTT库。

Objective-C:

编程语言库/工具名称详细信息
Objective-CmqttIO-objCObjective-C的MQTT库。
Objective-Clibmosquitto (通过包装器,示例)Objective-C的MQTT库,通过包装器使用libmosquitto。
Objective-CMQTTKit (示例应用程序)Objective-C的MQTT库,

附带示例应用程序。 |

OCaml:

编程语言库/工具名称详细信息
OCamlocaml-mqttOCaml的MQTT库。
OCamlmqtt_clientOCaml的MQTT库。

Perl:

编程语言库/工具名称详细信息
Perlnet-mqtt-perlPerl的MQTT库。
Perlanyevent-mqtt-perlAnyEvent框架中的Perl MQTT库。
PerlWebSphere-MQTT-ClientWebSphere中的Perl MQTT客户端。
PerlNet::MQTT::Simple (CPAN,GitHub)Perl的MQTT库。

PHP:

编程语言库/工具名称详细信息
PHPphpMQTTPHP的MQTT库。
PHPMosquitto-PHPMosquitto的PHP库。
PHPsskaje's MQTT libraryPHP的MQTT库。
PHPSimps/MQTT用于PHP的MQTT协议分析和协程客户端,支持MQTT 3.1,3.1.1和5.0版本。

Prolog:

编程语言库/工具名称详细信息
PrologMQTT Pack - Mosquitto library as a SWI-Prolog packMosquitto库的SWI-Prolog包。

Qt:

编程语言库/工具名称详细信息
QtqmqttQt的MQTT客户端库。

Ruby:

编程语言库/工具名称详细信息
Rubyruby-mqttRuby的MQTT库。
Rubyem-mqttRuby的MQTT库。
RubymosquittoMosquitto的Ruby库。

Rust:

编程语言库/工具名称详细信息
Rustmqrstt - Pure rust MQTTv5 client纯Rust MQTTv5客户端。

Shell Script:

编程语言库/工具名称详细信息
Shell Scriptbish-bosh支持bash、ash(包括BusyBox)、pdksh和mksh。

Smalltalk:

编程语言库/工具名称详细信息
SmalltalkMQTT client for Squeak, for Squeak 5.1Squeak 5.1的Squeak MQTT客户端库。

Swift:

编程语言库/工具名称详细信息
SwiftCocoaMQTT用Swift编写的iOS和OS X的MQTT客户端。
SwiftMQTT NIO支持v3.1.1和v5.0的Swift NIO MQTT客户端。

Tcl:

编程语言库/工具名称详细信息
Tcltcl-mqtt用于Tcl的MQTT客户端库。

这是一个更全面的列表,包括各种编程语言的MQTT库和工具。您可以根据您的项目需求选择适当的库和工具来支持MQTT通信。如果您需要更多信息或有其他问题,请随时提问。

技术术语(共 8 个)—— 点击展开
MQTT轻量级物联网消息传输协议,基于发布/订阅模式,适合低带宽不稳定网络
MQTT 3.1.1MQTT 协议主流版本,定义基础发布订阅与 QoS 机制
MQTT 5.0MQTT 协议新版本,新增属性、原因码、共享订阅与流量控制
Mosquitto轻量级开源 MQTT Broker,适合边缘与嵌入式部署
订阅客户端向 Broker 注册感兴趣的主题以接收消息
发布客户端向指定主题发送消息
WebSocket浏览器与 Broker 通过 ws/wss 传输 MQTT 的通道
网关协议转换/边缘汇聚设备,将设备数据接入 MQTT
来源/工具信息 —— 点击展开
来源 MQTT中文网(mqtt.cn) —— 国内领先的MQTT通信协议技术社区 分类 MQTT 客户端库 / MQTT 教程 字数 4710 字 · 阅读约 12 分钟 更新 2023-09-23 永久链接 https://www.mqtt.cn/670.html
推荐工具:MQTT调试助手 微信小程序
MQTT中文网官方推出的MQTT调试工具,支持 MQTT 3.1.1/5.0 实时连接调试、主题订阅、消息收发监控与报文分析。 无需安装,微信搜索「MQTT调试助手」即可使用。 电脑端入口:https://www.mqtt.cn/mqtttool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 mqtt.cn
📝 作者声明
本文由 MQTT中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

工程师会员

把这篇文章变成可执行的调试资料

开通后可使用高级报文解析、资料包下载、代码示例、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口