查看原文
其他

paho | 支持10种语言编写mqtt客户端,总有一款适合你!

mculover666 Mculover666 2021-01-31

1. 轻量级物联网协议 — MQTT

MQTT 全称 Message Queuing Telemetry Transport,即消息队列遥测传输协议,是一种基于发布 publish/订阅 subscribe 模式的"轻量级"通讯协议。

MQTT 协议构建于 TCP/IP 协议上,基于 TCP 传输方式,是一个基于客户端-服务器的消息发布/订阅传输协议

MQTT 协议轻量、简单、开放,特别适合端与端之间进行通信(中间经过服务器),一个使用 MQTT 的物联网系统架构如下:

从图中可以看出,无论是物联网设备,还是用户使用的物联网客户端,只有两种需求:

  • 订阅某个主题
  • 发布某个主题的消息

正因如此,MQTT 用起来非常方便,得到了广泛的应用,在之前的文章中讲述了如何搭建 MQTT 服务器——EMQ-X 服务器。

EMQX MQTT 服务器(上篇)| 使用 EMQ-X 搭建私有 MQTT 服务器

EMQX MQTT 服务器(下篇)| 开启客户端身份安全认证并使用 mqtt.fx 测试

在测试与服务器对接时,讲述了如何使用很好用的 MQTT 客户端软件——mqtt.fx。

mqtt.fx | 一款超级好用的 Mqtt 客户端软件(下载、安装、使用详解)

mqtt.fx 虽然超级好用,但是只能用来测试使用,在实际开发中,我们需要再寻找一个好办法去自己编写 MQTT 客户端,比如:

  • 微信小程序:JavaScript
  • PC 端:Python、Java、C#……
  • 安卓端:Java
  • 嵌入式设备:C

接下来讲述一个非常强大的库,支持用 10 种语言编写 MQTT 客户端,非常棒!

2. Eclipse paho 项目

Eclipse Paho 项目提供了 MQTT 消息传递协议的开源客户端实现,官网如下:

https://www.eclipse.org/paho/

Eclipse paho 项目提供了如下语言的库:

  • Java
  • Python
  • JavaScript
  • GoLang
  • C
  • C++
  • Rust
  • Net (C#)
  • Android Service
  • Embedded C/C++

针对这些语言的提供的 MQTT 客户端库目前对 MQTT 协议的支持情况如下:

3. Eclipse paho 项目库源码

Eclipse paho 项目是开源的,源码全部在 Eclipse 官方 Github 上:

https://github.com/eclipse/

进入其主页后,在过滤器输入 paho,轻轻敲下回车即可过滤出所有的 paho 库:

选择你需要的语言支持库,进入对应仓库后,其 README 文件中有非常详细的说明,包括:

  • 如何安装库
  • 库的一些限制,说明
  • 库提供的 API
  • API 如何使用说明
  • 示例代码
  • ……

后续有时间我会出个 paho 专题教程,哈哈哈,敬请期待~

关于 paho 库版本的选择,建议大家选择正式发布版,我这儿有一张来自官方的图,仅供参考:

更多精彩文章及资源,欢迎关注我的微信公众号:『mculover666』。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存