public abstract class HeartPlugin<T> extends AbstractPlugin<T>
| Modifier and Type | Class and Description |
|---|---|
static interface |
HeartPlugin.TimeoutCallback |
| Constructor and Description |
|---|
HeartPlugin(int heartRate,
int timeout,
TimeUnit unit)
心跳插件
|
HeartPlugin(int heartRate,
int timeout,
TimeUnit timeUnit,
HeartPlugin.TimeoutCallback timeoutCallback)
心跳插件
心跳插件在断网场景可能会触发TCP Retransmission,导致无法感知到网络实际状态,可通过设置timeout关闭连接
|
HeartPlugin(int heartRate,
TimeUnit timeUnit)
心跳插件
|
| Modifier and Type | Method and Description |
|---|---|
abstract boolean |
isHeartMessage(AioSession session,
T msg)
判断当前收到的消息是否为心跳消息。
心跳请求消息与响应消息可能相同,也可能不同,因实际场景而异,故接口定义不做区分。
|
boolean |
preProcess(AioSession session,
T t)
对请求消息进行预处理,并决策是否进行后续的MessageProcessor处理
若返回false,则当前消息将被忽略
若返回true,该消息会正常秩序MessageProcessor.process.
|
abstract void |
sendHeartRequest(AioSession session)
自定义心跳消息并发送
|
void |
stateEvent(SocketStatus socketStatus,
AioSession session,
Throwable throwable)
监听状态机事件
|
afterRead, afterWrite, beforeRead, beforeWrite, shouldAcceptpublic HeartPlugin(int heartRate,
TimeUnit timeUnit)
heartRate - 心跳触发频率timeUnit - heatRate单位public HeartPlugin(int heartRate,
int timeout,
TimeUnit unit)
心跳插件在断网场景可能会触发TCP Retransmission,导致无法感知到网络实际状态,可通过设置timeout关闭连接
heartRate - 心跳触发频率timeout - 消息超时时间unit - 时间单位public HeartPlugin(int heartRate,
int timeout,
TimeUnit timeUnit,
HeartPlugin.TimeoutCallback timeoutCallback)
heartRate - 心跳触发频率timeout - 消息超时时间timeUnit - 时间单位timeoutCallback - 超时回调public final boolean preProcess(AioSession session, T t)
PluginpreProcess in interface Plugin<T>preProcess in class AbstractPlugin<T>session - 会话t - 对象public final void stateEvent(SocketStatus socketStatus, AioSession session, Throwable throwable)
PluginstateEvent in interface Plugin<T>stateEvent in class AbstractPlugin<T>socketStatus - 状态session - 会话throwable - 线程MessageProcessor.stateEvent(AioSession, SocketStatus, Throwable)public abstract void sendHeartRequest(AioSession session) throws IOException
session - 会话IOException - 异常public abstract boolean isHeartMessage(AioSession session, T msg)
session - 会话msg - 消息Copyright © 2021. All rights reserved.