MQTT是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布/订阅信息传输协议。MQTT在时间和空间上,将消息发送者与接受者分离,可以在不可靠的网络环境中进行扩展。适用于设备硬件存储空间有限或网络带宽有限的场景。物联网平台支持设备使用MQTT协议接入。
wiki各种语言版本开发库
基础概念
QoS
level 0:最多一次的传输
level 1:至少一次的传输
level 2:只有一次的传输
QoS0:对于client而言,有且仅发一次publish包,对于broker而言,有且仅发一次publish,简而言之,就是仅发一次包,是否收到完全不管,适合那些不是很重要的数据。
QoS1:对于qos0而言,多了一次ack的作用,但是会有个问题,尽管我们可以通过确认来保证一定收到客户端或服务器的message,但是我们却不能保证message仅有一次,
也就是当client没收到service的puback或者service没有收到client的puback,那么就会一直发送publisher
流程:(publisher -> broker)
publisher store msg -> publish ->broker (传递message)
broker -> puback -> publisher delete msg (确认传递成功)
注意:
publisher必须保存msg,这样才能在