## 简介
当客户端断开连接时,发送给相关的订阅者的遗嘱消息。以下情况下会发送 Will Message:
- 服务端发生了I/O 错误或者网络失败;
- 客户端在定义的心跳时期失联;
- 客户端在发送下线包之前关闭网络连接;
- 服务端在收到下线包之前关闭网络连接。
遗嘱消息一般通过在客户端 CONNECT 的时候指定。如下所示,在连接的时候通过调用 `MqttConnectOptions` 实例的 `setWill` 方法来设定。任何订阅了下面的主题的客户端都可以收到该遗嘱消息。
```
//方法1MqttConnectOptions.setWill(MqttTopic topic, byte[] payload, int qos, boolean retained)//方法2MqttConnectOptions.setWill(java.lang.String topic, byte[] payload, int qos, boolean retained)
```
## 使用场景
在客户端 A 进行连接时候,遗嘱消息设定为”offline“,客户端 B 订阅这个遗嘱主题。当 A 异常断开时,客户端 B 会收到这个”offline“的遗嘱消息,从而知道客户端 A 离线了。
### Connect Flag 报文字段
| Bit | 7 | 6 | 5 | 4 | 2 | 1 | 0 |
| ------ | -------------- | ------------- | ----------- | -------- | --------- | ----------- | -------- |
| | User