序言
Mqtt就是个Jms的服务协议(我的偏见)。订阅发布,服务器可以使用Emq,官方网址是https://www.emqx.io/ (实在不想在搭建Emq服务器了太求没意思了。故此通过springboot整合Mqtt来倒推Emq的功能[email protected]。)
参考资料:
- 使用EMQ实现消息推送_大脸猫的博客-CSDN博客_emq
- SpringBoot整合emqtt_lxw的博客-CSDN博客
- https://blog.csdn.net/u011142688/article/details/79852325(比较重要)
- mqtt client api: 阻塞API - Endv - 博客园
- MQTT--topic(主题通配符)设计 - CSDN博客 | IT瘾
- 协议介绍 | EMQ Docs --------------关于Qos
- 保留消息 | EMQ Docs --------------------------关于publish发布的保留消息
MQTT
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级协议,该协议构建于TCP/IP协议之上,MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务(这是特点)。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。(这是应用范围)
MQTT协议工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
- 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。(这不就是JMS么~~~~~这个的实时指令下达能否及时响应呢,现在看只是从带宽,网络的优势上选择了该技术)
- 对负载内容屏蔽的消息传输。
- 使用TCP/IP提供网络连接:主流的MQTT是基于TCP连接进行数据推送的,但是同样有基于UDP的版本,叫做MQTT-SN。这两种版本由于基于不同的连接方式,优缺点自然也就各