在 MQTT 协议通讯中,最重要的两个角色是服务端和客户端。客户端向一「主题」「发布」消息,服务端处理并推送给「订阅」了该「主题」的其他客户端。
这么说是不是一头雾水?我打个比方,将整个 MQTT 比作我们熟悉的视频软件,一一对应关系如下。
假如你是张三,一名普通的抖音用户,你关注了良许的抖音账号。在这里,张三跟良许不会直接产生关系,而是会通过抖音服务器。抖音服务器就是「服务端」,所有抖音用户就是「客户端」,你关注良许的这个动作,就叫作「订阅」。
如果A「发布」了一条视频,那么张三、李四、王五、老六,等等所有关注了A的粉丝都会收到这个视频推送。这是因为抖音里没有主题的概念,只要A有发视频,粉丝都会收到推送。 假如抖音也有主题的概念,发布的视频都带有主题的属性。那么,A发布了编程、副业、职场、吃喝拉撒相关主题的视频,而张三只订阅了吃喝拉撒这个「主题」,那么只有当A发布了吃喝拉撒这个主题的视频,张三才会收到这个视频。而如果发布了编程、副业相关的视频,张三不会收到任何通知。 这就是 MQTT 的基础原理。
|