@Override
  public void Heartbeat(int arg0) throws Exception {
    synchronized (this) {
      if (this.userState != GSUserState.Login) {
        logger.warn("drop heartbeat -- user state({}) error", this.userState);
        return;
      }

      int receivedID = binderDataBase.getReceivedSeqID();

      logger.debug("received heartbeat {} local {}", arg0, receivedID);

      if (receivedID < arg0) {

        imServer.pollMessage(this.client.getToken(), receivedID);
      }
    }
  }