Package org.miaixz.bus.socket.plugins
Class HeartPlugin<T>
java.lang.Object
org.miaixz.bus.socket.plugins.AbstractPlugin<T>
org.miaixz.bus.socket.plugins.HeartPlugin<T>
- All Implemented Interfaces:
NetMonitor,Plugin<T>
心跳插件
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionHeartPlugin(int heartRate, int timeout, TimeUnit unit) 心跳插件HeartPlugin(int heartRate, int timeout, TimeUnit timeUnit, HeartPlugin.TimeoutCallback timeoutCallback) 心跳插件 心跳插件在断网场景可能会触发TCP Retransmission,导致无法感知到网络实际状态,可通过设置timeout关闭连接HeartPlugin(int heartRate, TimeUnit timeUnit) 心跳插件 -
Method Summary
Modifier and TypeMethodDescriptionabstract booleanisHeartMessage(AioSession session, T msg) 判断当前收到的消息是否为心跳消息。 心跳请求消息与响应消息可能相同,也可能不同,因实际场景而异,故接口定义不做区分。final booleanpreProcess(AioSession session, T t) 对请求消息进行预处理,并决策是否进行后续的MessageProcessor处理 若返回false,则当前消息将被忽略 若返回true,该消息会正常秩序MessageProcessor.process.abstract voidsendHeartRequest(AioSession session) 自定义心跳消息并发送final voidstateEvent(SocketStatus socketStatus, AioSession session, Throwable throwable) 监听状态机事件Methods inherited from class org.miaixz.bus.socket.plugins.AbstractPlugin
afterRead, afterWrite, beforeRead, beforeWrite, shouldAccept
-
Constructor Details
-
HeartPlugin
心跳插件- Parameters:
heartRate- 心跳触发频率timeUnit- heatRate单位
-
HeartPlugin
心跳插件心跳插件在断网场景可能会触发TCP Retransmission,导致无法感知到网络实际状态,可通过设置timeout关闭连接
- Parameters:
heartRate- 心跳触发频率timeout- 消息超时时间unit- 时间单位
-
HeartPlugin
public HeartPlugin(int heartRate, int timeout, TimeUnit timeUnit, HeartPlugin.TimeoutCallback timeoutCallback) 心跳插件 心跳插件在断网场景可能会触发TCP Retransmission,导致无法感知到网络实际状态,可通过设置timeout关闭连接- Parameters:
heartRate- 心跳触发频率timeout- 消息超时时间
-
-
Method Details
-
preProcess
Description copied from interface:Plugin对请求消息进行预处理,并决策是否进行后续的MessageProcessor处理 若返回false,则当前消息将被忽略 若返回true,该消息会正常秩序MessageProcessor.process.- Specified by:
preProcessin interfacePlugin<T>- Overrides:
preProcessin classAbstractPlugin<T>- Parameters:
session- 会话t- 对象- Returns:
- the true/false
-
stateEvent
Description copied from interface:Plugin监听状态机事件- Specified by:
stateEventin interfacePlugin<T>- Overrides:
stateEventin classAbstractPlugin<T>- Parameters:
socketStatus- 状态session- 会话throwable- 线程- See Also:
-
sendHeartRequest
自定义心跳消息并发送- Parameters:
session- 会话- Throws:
IOException- 异常
-
isHeartMessage
判断当前收到的消息是否为心跳消息。 心跳请求消息与响应消息可能相同,也可能不同,因实际场景而异,故接口定义不做区分。- Parameters:
session- 会话msg- 消息- Returns:
- the true/false
-