| Package | Description |
|---|---|
| org.aoju.bus.socket | |
| org.aoju.bus.socket.plugins | |
| org.aoju.bus.socket.process |
| Modifier and Type | Class and Description |
|---|---|
class |
TcpAioSession<T>
AIO传输层会话。
|
class |
UdpAioSession |
| Modifier and Type | Method and Description |
|---|---|
AioSession |
UdpChannel.connect(SocketAddress remote)
建立与远程服务的连接会话,通过AioSession可进行数据传输
|
AioSession |
QuickAioClient.start()
启动客户端
本方法会构建线程数为2的
asynchronousChannelGroup,
并通过调用QuickAioClient.start(AsynchronousChannelGroup)启动服务 |
AioSession |
QuickAioClient.start(AsynchronousChannelGroup asynchronousChannelGroup)
启动客户端
在与服务端建立连接期间,该方法处于阻塞状态。直至连接建立成功,或者发生异常
该start方法支持外部指定AsynchronousChannelGroup,实现多个客户端共享一组线程池资源,有效提升资源利用率。
|
| Modifier and Type | Method and Description |
|---|---|
void |
NetMonitor.afterRead(AioSession session,
int readSize)
监控触发本次读回调Session的已读数据字节数
|
void |
NetMonitor.afterWrite(AioSession session,
int writeSize)
监控触发本次写回调session的已写数据字节数
|
void |
NetMonitor.beforeRead(AioSession session)
即将开始读取数据
|
void |
NetMonitor.beforeWrite(AioSession session)
即将开始写数据
|
T |
Protocol.decode(ByteBuffer readBuffer,
AioSession session)
对于从Socket流中获取到的数据采用当前Protocol的实现类协议进行解析。
|
void |
GroupIo.join(String group,
AioSession session)
将AioSession加入群组group
|
void |
GroupIo.remove(AioSession session)
AioSession从所有群组中退出
|
void |
GroupIo.remove(String group,
AioSession session)
将AioSession从群众group中移除
|
| Modifier and Type | Method and Description |
|---|---|
void |
MonitorPlugin.afterRead(AioSession session,
int readSize) |
void |
AbstractPlugin.afterRead(AioSession session,
int readSize) |
void |
MonitorPlugin.afterWrite(AioSession session,
int writeSize) |
void |
AbstractPlugin.afterWrite(AioSession session,
int writeSize) |
void |
MonitorPlugin.beforeRead(AioSession session) |
void |
AbstractPlugin.beforeRead(AioSession session) |
void |
MonitorPlugin.beforeWrite(AioSession session) |
void |
AbstractPlugin.beforeWrite(AioSession session) |
void |
HeartPlugin.TimeoutCallback.callback(AioSession session,
long lastTime) |
abstract boolean |
HeartPlugin.isHeartMessage(AioSession session,
T msg)
判断当前收到的消息是否为心跳消息。
心跳请求消息与响应消息可能相同,也可能不同,因实际场景而异,故接口定义不做区分。
|
boolean |
Plugin.preProcess(AioSession session,
T t)
对请求消息进行预处理,并决策是否进行后续的MessageProcessor处理
若返回false,则当前消息将被忽略
若返回true,该消息会正常秩序MessageProcessor.process.
|
boolean |
MonitorPlugin.preProcess(AioSession session,
T t) |
boolean |
HeartPlugin.preProcess(AioSession session,
T t) |
boolean |
AbstractPlugin.preProcess(AioSession session,
T t) |
abstract void |
HeartPlugin.sendHeartRequest(AioSession session)
自定义心跳消息并发送
|
void |
ReconnectPlugin.stateEvent(SocketStatus socketStatus,
AioSession session,
Throwable throwable) |
void |
Plugin.stateEvent(SocketStatus socketStatus,
AioSession session,
Throwable throwable)
监听状态机事件
|
void |
MonitorPlugin.stateEvent(SocketStatus socketStatus,
AioSession session,
Throwable throwable) |
void |
HeartPlugin.stateEvent(SocketStatus socketStatus,
AioSession session,
Throwable throwable) |
void |
AbstractPlugin.stateEvent(SocketStatus socketStatus,
AioSession session,
Throwable throwable) |
| Modifier and Type | Method and Description |
|---|---|
void |
AbstractProcessor.afterRead(AioSession session,
int readSize) |
void |
AbstractProcessor.afterWrite(AioSession session,
int writeSize) |
void |
AbstractProcessor.beforeRead(AioSession session) |
void |
AbstractProcessor.beforeWrite(AioSession session) |
void |
GroupMessageProcessor.join(String group,
AioSession session)
将AioSession加入群组group
|
void |
MessageProcessor.process(AioSession session,
T msg)
处理接收到的消息
|
void |
AbstractProcessor.process(AioSession session,
T msg) |
abstract void |
AbstractProcessor.process0(AioSession session,
T msg)
处理接收到的消息
|
void |
GroupMessageProcessor.remove(AioSession session) |
void |
GroupMessageProcessor.remove(String group,
AioSession session) |
void |
MessageProcessor.stateEvent(AioSession session,
SocketStatus socketStatus,
Throwable throwable)
状态机事件,当枚举事件发生时由框架触发该方法
|
void |
AbstractProcessor.stateEvent(AioSession session,
SocketStatus socketStatus,
Throwable throwable) |
abstract void |
AbstractProcessor.stateEvent0(AioSession session,
SocketStatus socketStatus,
Throwable throwable) |
Copyright © 2021. All rights reserved.