1.物联网数据传输的要求是什么?
物联网中的数据传输会面临很多挑战。采集发送数据的终端能耗应该较小,在低带宽和不稳定的网络情况下,需要保证数据的传输是成功的,保证数据不被重复发送,连接断开后可以进行重连。服务器端要能在高并发情况下,接收和处理多个客户端的消息。
2.MQTT是什么?
MQTT(Message Queuing Telemetry Transport)是专门针对物联网开发的轻量级传输协议。它被设计用于轻量级的发布/订阅式消息传输,从而为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT协议针对低带宽网络和低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。关于MQTT的内容,可以访问http://mqtt.org/ ,MQTT协议的定义在这里http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html
3. MQTT的优点是什么?
MQTT在物联网以及移动应用中的优势如下:
实现可靠传输。MQTT可以保证消息可靠安全地传输,并且可以与企业应用简易集成。
支持消息推送。支持消息实时通知,包含丰富的推送内容,可采用灵活的Pub-Sub(发布和订阅)以及消息存储和过滤。
低带宽、低耗能、低成本。低带宽可支持移动应用程序,带宽利用率高,耗电量较小。
原因在于,MQTT的设计思想是开源、可靠、轻巧、简单。MQTT的传输格式非常短小,最小的数据包只有2个比特,且无应用消息头。MQTT可以保证消息的可靠性,包括三种不同的服务质量,即最多只传一次、最少被传一次以及一次且只传一次),如果客户端意外掉线,可以使用“遗愿”发布一条消息,同时支持持久订阅。
4.MQTT有哪些具体应用?
MQTT的相关软件包括以下
- 代理/服务器
- 客户端库
- 工具和应用程序
- 其他软件的插件
- 支持MQTT的产品(物)
具体的应用,请看这里https://github.com/mqtt/mqtt.github.io/wiki/software?id=software
以下介绍一些具体应用。
Paho
https://eclipse.org/paho/
Eclipse Paho是MQTT服务器的Java实现版本。由IBM于2011年建立Eclipse开源项目Paho。
Amazon IoT
2015年10月8日Amazon Web Services宣布基于MQTT的Amazon IoT
EMQ
是一种采用Apache 2.0开源许可协议的服务器,是中国开发者李枫的作品。
国内的开发者的福音来了,EMQ(Erlang/Enterprise/Elastic MQTT Broker)是百万级开源MQTT消息服务器。其基于Erlang/OTP语言平台开发,支持大规模连接和分布式集群,发布订阅模式。
EMQ 2.0完整支持MQTT V3.1/V3.1.1版本协议规范,并扩展支持WebSocket、Stomp、CoAP、MQTT-SN或私有TCP协议。EMQ 2.0消息服务器支持单节点100万连接与多节点分布式集群。
具体怎么玩,就参考这里吧
http://emqtt.com/docs/v2/getstarted.html
Moquette
是MQTT协议的开源JAVA代理,一种Web工具,使发布或订阅MQTT主题变得简单。请参考https://github.com/andsel/moquette
HiveMQ
是一种代理。
参考链接:https://www.hivemq.com/