简介java
当客户端断开链接时,发送给相关的订阅者的遗嘱消息。如下状况下会发送 Will Message:服务器
服务端发生了I/O 错误或者网络失败;网络
客户端在定义的心跳时期失联;ui
客户端在发送下线包以前关闭网络链接;命令行
服务端在收到下线包以前关闭网络链接。cdn
遗嘱消息通常经过在客户端 CONNECT 的时候指定。以下所示,在链接的时候经过调用 MqttConnectOptions 实例的 setWill 方法来设定。任何订阅了下面的主题的客户端均可以收到该遗嘱消息。blog
//方法1 MqttConnectOptions.setWill(MqttTopic topic, byte[] payload, int qos, boolean retained)qt
//方法2 MqttConnectOptions.setWill(java.lang.String topic, byte[] payload, int qos, boolean retained)it
使用场景io
在客户端 A 进行链接时候,遗嘱消息设定为”offline“,客户端 B 订阅这个遗嘱主题。 当 A 异常断开时,客户端 B 会收到这个”offline“的遗嘱消息,从而知道客户端 A 离线了。
Connect Flag 报文字段
遗嘱消息在客户端正常调用 disconnect 方法以后并不会被发送。
Will Flag 做用