Mqtt就是个Jms的服务协议(我的偏见)。订阅发布,服务器可以使用Emq,官方网址是https://www.emqx.io/ (实在不想在搭建Emq服务器了太求没意思了。故此通过springboot整合Mqtt来倒推Emq的功能cuiyaonan2000@163.com。)
参考资料:
- 使用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(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级协议,该协议构建于TCP/IP协议之上,MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务(这是特点)。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。(这是应用范围)
MQTT协议工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
- 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。(这不就是JMS么~~~~~这个的实时指令下达能否及时响应呢,现在看只是从带宽,网络的优势上选择了该技术)
- 对负载内容屏蔽的消息传输。
- 使用TCP/IP提供网络连接:主流的MQTT是基于TCP连接进行数据推送的,但是同样有基于UDP的版本,叫做MQTT-SN。这两种版本由于基于不同的连接方式,优缺点自然也就各有不同了。
- 有三种消息发布服务质量:“至多一次”,“至少一次”,“只有一次”
- 小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量。
MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务