constructor(
      initCallback, errCallback, closeCallback, debug = false, appId, isGreedy,
      oncloseBehavior) {
    this.reqs = [];
    this.reps = [];
    this.requestId = this.getRequestId();
    this.debug = debug;
    this.isGreedy = isGreedy;
    this.errCallback = errCallback;
    this.closeCallback = closeCallback;
    this.alwaysdebug = false;
    this.isConnected = false;
    let initCmd = null;
    if (appId || isGreedy || oncloseBehavior) {
      initCmd = new InitMessage(appId, isGreedy, oncloseBehavior, this.debug);
    } else {
      if (debug) this.alwaysdebug = true;
      if (typeof initCallback == 'function') initCmd = new InfoMessage();
    }
    this.openWebsocket(initCmd, initCallback);
  }
Establish a client to talk to HoloPlayService.
@constructor
@param {function} initCallback - optional; a function to trigger when
    response is received
@param {function} errCallback - optional; a function to trigger when there
    is a connection error
@param {function} closeCallback - optional; a function to trigger when the
    socket is closed
@param {boolean} debug - optional; default is false
@param {string}  appId - optional
@param {boolean} isGreedy - optional
@param {string}  oncloseBehavior - optional, can be 'wipe', 'hide', 'none'