@Override
  public int handle(
      SocketChannel socketChannel, ChannelContext channelContext, String errorReason) {
    channelContext.getStatVo().getCountOfErrorPackage().incrementAndGet();
    log.error("[" + "] received error package, reason is " + errorReason);

    if (channelContext.getStatVo().getCountOfErrorPackage().get() >= MAX_COUNT) {
      channelContext.getStatVo().getCountOfErrorPackage().set(0);
      NioUtils.remove(channelContext, "received an error package");
    }
    return (int) channelContext.getStatVo().getCountOfErrorPackage().get();
  }
  private int send(SocketChannel socketChannel, ByteBuffer dataBuffer) throws IOException {
    int sendSize = socketChannel.write(dataBuffer);

    if (sendSize > 0) {
      channelContext.getStatVo().setCurrentSendTime(SystemTimer.currentTimeMillis());
      channelContext.getStatVo().setSentBytes(sendSize + channelContext.getStatVo().getSentBytes());
      StatVo.getAllSentBytes().addAndGet(sendSize);

      getProcessedMsgByteCount().addAndGet(sendSize);
    }

    return sendSize;
  }