本文将深入研究如何在 MQTT 的异步消息传递框架下,借助 MQTT 5.0 的新特性,实现“请求 / 响应”机制。
本文将深入研究如何在 MQTT 的异步消息传递框架下,借助 MQTT 5.0 的新特性,实现“请求 / 响应”机制。
遗嘱消息是 MQTT 消息协议中的一个重要功能,它解决了只有服务端才能知道客户端是否在线的问题,使我们能够为意外离线的客户端优雅地完成善后事宜。
共享订阅是 MQTT 5.0 引入的一个重要功能,目前它已经广泛地应用在生产实践中。虽然这是 MQTT 5.0 的一个新特性,但任何协议版本的客户端都能使用它。在本文中,我们将专注于共享订阅这个特性,一起深入研究它的用途和机制。
MQTT 5.0 是该协议的最新版本,相比之前的版本有了很多改进。新增功能包括:原因代码、会话过期间隔、主题别名、用户属性、订阅选项、请求/响应功能和共享订阅等。
在本文中,我们将介绍 MQTT 的会话机制,以及 Clean Start 和 Session Expiry Interval 这两个用于配置会话生命周期的连接参数。
在本文中,我们将聚焦于 MQTT 5.0 的 Payload Format Indicator 和 Content Type 这两个属性,探讨它们如何使我们对消息的解析变得更加透明和高效。
MQTT 5.0 引入了增强认证特性,在原先 CONNECT 和 CONNACK 报文的基础上,又引入了 AUTH 报文来实现任意多次的认证数据交换,以支持各种不同类型的认证机制,例如 SCRAM、Kerberos 认证等等。
在 MQTT 中,客户端和服务端可以在断开网络连接前向对端发送一个 DISCONNECT 报文,来指示连接关闭的原因。客户端发送的 DISCONNECT 报文还可以影响服务端在连接断开后的行为,例如是否发送遗嘱消息,是否更新会话过期间隔。
除了用于连接、发布和订阅的控制报文,MQTT 还有一类报文用于在客户端和服务端之间模拟心跳,以达到保持连接的目的,它们分别是 PINGREQ 报文和 PINGRESP 报文,我们通常也会称它们为心跳报文。
在 MQTT 中,SUBSCRIBE 报文用于发起订阅请求,SUBACK 报文用于返回订阅结果。而 UNSUBSCRIBE 和 UNSUBACK 报文则在取消订阅时使用。
客户端与服务端在消息传递的过程中,除了 PUBLISH 报文,还会用到 PUBACK、PUBREC、PUBREL、PUBCOMP 这四个报文,它们分别用于实现 MQTT 的 QoS 1 和 QoS 2 消息机制。
在本文中,我们将深入研究建立 MQTT 连接需要用到的两个控制报文,分别是 CONNECT 报文与 CONNACK 报文。