心跳是在客户端连接成功之后，由客户端定时发起的一个消息包。过程为：

* 客户端发送 Ping 消息包
* 服务端收到后，会回发一个 Pong 消息包

如果某一端长久没有收到消息包（心跳是最小单位的消息包），则会触发闲置超时：`idleTimeout`（默认为 60s）

### 1、心跳间隔配置（单位毫秒）

更多配置参考“配置类”

```java
ClientSession session = SocketD.createClient("sd:ws://127.0.0.1:8602")
        .config(c->c.heartbeatInterval(20_000))  //比如改成 20s（建议不要改）
        .open();
```


### 2、自定义心跳处理（一般，没必要）

使用 heartbeatHandler 配置，可以定制心跳处理（替换默认处理）。<mark>定制时，一定要发出消息包</mark>

* 比如，添加日志

```java
ClientSession session = SocketD.createClient("sd:ws://127.0.0.1:8602")
        .config(c->c.heartbeatHandler(s->{
            s.sendPing();
            System.out.println("xxx");
        })) 
        .open();
```

* 比如，用业务消息包替代心跳包

```java
ClientSession session = SocketD.createClient("sd:ws://127.0.0.1:8602")
        .config(c->c.heartbeatHandler(s->{
            session.send("/ping", new StringEntity("test"));
        })) 
        .open();
```