private void requestRegisterEasemob(final User user) {

    log.info("request to register on easemob ==>" + user);
    ServiceFactory.getEaseMobService()
        .register(
            user.getMail(),
            user.getPassword(),
            new EasemobRegisterCallback() {

              @Override
              public void onRegistered() {
                log.info("onRegistered  ease callback to register on easemob ==>" + user);
                if (user.getPushTerminal() == null) {
                  user.addPendingEvent(new MessageEvent(new EasemobMessage(user)));
                } else {
                  user.getPushTerminal().postEvent(new MessageEvent(new EasemobMessage(user)));
                }
              }

              @Override
              public void onFailed() {
                log.info("onFailed  ease callback to register on easemob ==>" + user);
                if (user.getPushTerminal() == null) {
                  user.addPendingEvent(new MessageEvent(new EasemobMessage(user)));
                } else {
                  user.getPushTerminal().postEvent(new MessageEvent(new EasemobMessage(user)));
                }
              }

              @Override
              public void onError() {
                log.info("onError  ease callback to register on easemob ==>" + user);
                if (user.getPushTerminal() == null) {
                  user.addPendingEvent(new MessageEvent(new EasemobMessage(user)));
                } else {
                  user.getPushTerminal().postEvent(new MessageEvent(new EasemobMessage(user)));
                }
              }
            });
  }