前要:今天下午下班与后端同事在楼下面馆吃面,在等餐的时候,点餐机器不停地报:“您有新的外卖订单,请及时处理!”,后端同事问:“你知道这实时语音播报是怎么实现的吗?”,其实我也不知道!哈哈哈!!!因为我们的是从事互联网开发的,严谨来说,这属于物联网范畴的!后来与从事物联网的朋友打游戏问了她才知道是通过MQTT消息列队传输协议实现的!因为她做过一键报警系统功能!其实吧!互联网平时开发也遇到过类似这的功能,其实和平时调用发布/订阅api一样的道理!!!所以今天专门了解一下该协议!!!
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
常见的信息代理平台:
1.mosquitto:【简介】mosquitto是ecpllse的开源Broker,
2.EMQ:【简介】EMQ是是国人出的开源Broker,
3.HiveMQ:【简介】HiveMQ是企业级的Broker,
4.MqttWk:【简介】mosquitto是一个阿里编写基于nutzboot+nrtty+redis+kafka实现的MQTT服务开源Broker,
信息代理的三个作用:
1.接收设备发来的消息,
2.过滤消息,
3.发送消息到订阅改专题的设备上,
订阅包含主题筛选器(Topic Filter)和最大服务质量(QoS)。订阅会与一个会话(Session)关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。
每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。会话存在于一个网络之间,也可能在客户端和服务器之间跨越多个连续的网络连接。
连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。
一个对主题名通配符筛选器,在订