心跳
心跳是在客户端连接成功之后,由客户端定时发起的一个消息包。过程为:
- 客户端发送 Ping 消息包
- 服务端收到后,会回发一个 Pong 消息包
如果某一端长久没有收到消息包(心跳是最小单位的消息包),则会触发闲置超时:idleTimeout
(默认为 60s)
1、心跳间隔配置(单位毫秒)
更多配置参考“配置类”
ClientSession session = SocketD.createClient("sd:ws://127.0.0.1:8602")
.config(c->c.heartbeatInterval(20_000)) //比如改成 20s(建议不要改)
.open();
2、自定义心跳处理(一般,没必要)
使用 heartbeatHandler 配置,可以定制心跳处理(替换默认处理)。定制时,一定要发出消息包
- 比如,添加日志
ClientSession session = SocketD.createClient("sd:ws://127.0.0.1:8602")
.config(c->c.heartbeatHandler(s->{
s.sendPing();
System.out.println("xxx");
}))
.open();
- 比如,用业务消息包替代心跳包
ClientSession session = SocketD.createClient("sd:ws://127.0.0.1:8602")
.config(c->c.heartbeatHandler(s->{
session.send("/ping", new StringEntity("test"));
}))
.open();