MQTT 5.0
MQTT 5.0 - 发布订阅模式介绍 MQTT 协议的核心在于发布订阅模式,在本文中,我们将对这一模式进行深入的介绍。 发布订阅模式 发布订阅模式区别于传统的客户端-服务器模式,它使 发送消息的客户端(发布者)与接收消息的客户端(订阅者)分离 ,发布者与订阅者不需要建立直接联系。我们既可以让多个发布者向一个订阅者发布消息,也可以让多个订阅者同时接收一个发布者的消息,它的精髓在于由一个被称为代理的中间角色负责所有消息路由和分发的工作。传统的客户端-服务器模式可以实现类似的效果,但是无法做到像发布订阅模式这样简洁和优雅。 发布订阅模式的优点在于发布者与订阅者的解耦,这种解耦表现在以下两个方面: 空间解耦,订阅者与发布者不需要建立直接连接,新的订阅者想要加入网络时不需要修改发布者的行为。 时间解耦,订阅者和发布者不需要同时在线,即便不存在订阅者也不影响发布者发布消息。 消息路由 代理作为发布订阅模式的关键角色,它需要准确、高效地向订阅者转发其期望的消息,一般来说,比较常用的有以下两种方式: 根据主题。订阅者向代理订阅自己感兴趣的主题,发布者发布的所有消息中都会包含自己的主题,代理根据消息的主题判断需要将消息转发给哪些订阅者。 根据消息内容。订阅者定义其感兴趣的消息的条件,只有当消息的属性或内容满足订阅者定义的条件时,消息才会被投递到该订阅者。严格来讲,主题也可以算是消息内容的一种。