八、会话类
8. Socket会话类
org.voovan.network.aio.AioSession
org.voovan.network.nio.NioSession
用于缓冲会话中的各种对象和会话属性。
public SocketContext sockContext()
- 获取socket连接上下文
- 返回值: socket连接上下文。
public boolean containAttribute(Object key)
- 判断是否包含某个会话属性
- key:属性名称
public Object getAttribute(Object key)
- 获取会话属性值
- key:属性名称
- 返回值:属性值
public void setAttribute(Object key, Object value)
- 设置会话属性值
- key:属性名称
- value:属性值
public void enabledMessageSpliter(boolean useSpliter)
- 设置是否使用分割器读取
- useSpliter: - true 使用分割器读取,false 不使用分割器读取,且不会出发 onRecive 事件
public int read(ByteBuffer byteBuffer) throws IOException
- 读取消息
- byteBuffer: 字节缓冲对象ByteBuffer,读取 前需要使用 enabledMessageSpliter(false) 停止分割器的工作,除非有特殊的需求。
public void send(ByteBuffer buffer) throws IOException
- 发送消息
- buffer: 发送消息的缓冲区,注意直接调用不会出发 onSent 事件。
public Object synchronouRead() throws ReadMessageException
- 同步读取消息。
- 返回值: 读取出的对象。
public void synchronouSend(Object obj) throws SendMessageException
- 同步发送消息。
- obj: 要发送的对象。
public HeartBeat getHeartBeat()
- 获取心跳对象。
- obj: 心跳对象。
public int getIdleInterval()
- 获取空闲事件时间
public void send(ByteBuffer buffer) throws IOException
- 设置空闲事件时间
- idleInterval: 空闲事件时间。
public abstract boolean isConnected()
- 会话是否连接
- 返回值:true: 打开,false: 关闭
public abstract boolean isOpen()
- 会话是否打开
- 返回值:true: 打开,false: 关闭
public abstract boolean close();
- 关闭当前 Socket 连接,不会出发 onClose 事件
public abstract String loaclAddress()
public abstract int loaclPort()
public abstract String remoteAddress()
public abstract int remotePort()
-这四个方法用于获取本地,对端的 IP 地址和端口信息