八、会话类

8. Socket会话类

org.voovan.network.aio.AioSession

org.voovan.network.nio.NioSession

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

-这四个方法用于获取本地,对端的 IP 地址和端口信息