paho | 支持10种语言编写mqtt客户端,总有一款适合你!
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客户端,比如:
- 微信小程序:JavaScript
- PC端:Python、Java、C#……
- 安卓端:Java
- 嵌入式设备:C
接下来讲述一个非常强大的库,支持用10种语言编写MQTT客户端,非常棒!
2. Eclipse paho项目
Eclipse Paho项目提供了MQTT消息传递协议的开源客户端实现,官网如下:
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上:
进入其主页后,在过滤器输入paho,轻轻敲下回车即可过滤出所有的paho库:
选择你需要的语言支持库,进入对应仓库后,其README文件中有非常详细的说明,包括:
- 如何安装库
- 库的一些限制,说明
- 库提供的API
- API如何使用说明
- 示例代码
- ……
后续有时间我会出个paho专题教程,哈哈哈,敬请期待~
关于paho库版本的选择,建议大家选择正式发布版,我这儿有一张来自官方的图,仅供参考: