MQTT,mosquitto,Eclipse Paho这三个单词陌生而又神秘。那么这三个单词究竟是什么意思,代表了什么技术,他们之间有关联吗?不着急,请听笔者慢慢给大家分享。
(1)MQTT(英语全称,Message Queue Telemetry Transport),中文翻译过来就是遥测传输协议:其主要提供订阅/发布模式,更为简约、轻量,易于使用,针对受限环境(带宽低、网络延迟高、网络通信不稳定),属于物联网(Internet of Thing)的一个传输协议。具体协议内容,请参考:http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html。
(2) mosquitto
是MQTT协议标准的一种开源实现,其具体的操作方式,请 参考http://mosquitto.org/man/mosquitto-8.html,其具体的安装和使用方式,网上有很多的资料,咱们就不在重复说明了。对于这种协议,其实有很多的服务器的实现,如下,都是MQTT协议的服务器端的实现。但是为了方便和简单起见,咱们这一系列的文章选择Mosquitto作为MQTT服务器的实现。
IBM Websphere MQ Telemetry
IBM MessageSight
IBM Integration Bus
Mosquitto
Eclipse Paho
Eurotech Everywhere Device Cloud
emqttd
Xively
m2m.io
webMethods Nirvana Messaging
RabbitMQ
Apache ActiveMQ
Apache Apollo
Moquette
HiveMQ
Mosca
Litmus Automation Loop
JoramMQ
ThingMQ
VerneMQ
(3) Eclipse Paho是Eclipse 提供的一个访问MQTT服务器的一种开源客户端库。其提供了7种不同语言平台的客户端类库。
在咱们这一系列的文章中,咱们就以Java的客户端库为例子,和大家一起度过接下来的系列文章。
值得一提的是,和MQTT服务器进行交互的开源框架还有很多,比如,对于Java语言和平台来说,有下面的框架。
- Eclipse Paho Java
- Xenqtt Includes a client library, mock broker for unit/integration
testing, and applications to support enterprise needs like using a cluster of servers as a single client, an HTTP gateway, etc. - MeQanTT
- Fusesource mqtt-client
- moquette
- "MA9B"
zip of 1/2 dozen mobile clients source code. Includes Android-optimized Java source that works with Android notifications, based on Paho - IA92 - deprecated IBM
IA92 support pack, use Eclipse Paho GUI client instead. A useful MQTT Java swing GUI for publishing & subscribing. The Eclipse Paho GUI is identical but uses newer client code
但是,根据目前的流行和使用的次数,应该首推Eclipse Paho,因此本系列的文章选择Eclipse Paho作为客户端的访问类库和MQTT的服务进行交互。