docs: function HTTPTransport(config) {
    this.id = config && config.id || null;
    this.networkId = null;
  
    this.agents = {};
    this.outstandingRequests = {}; // these are received messages that are expecting a response
    this.outstandingMessages = {};
  
    this.url =  config && config.url || "http://127.0.0.1:3000/agents/:id";
    this.remoteUrl =  config && config.remoteUrl;
    this.localShortcut = (config && config.localShortcut === false) ? false : true;
  
    this.httpTimeout =         config && config.httpTimeout         || 2000; // 1 second - timeout to send message
    this.httpResponseTimeout = config && config.httpResponseTimeout || 200;  // 0.5 second - timeout to expect reply after delivering request
    this.regexHosts = /[http]{4}s?:\/\/([a-z\-\.A-Z0-9]*):?([0-9]*)(\/[a-z\/:A-Z0-9._\-% \\\(\)\*\+\.\^\$]*)/;
    this.urlHostData = this.regexHosts.exec(this.url);
  
    this.regexPath = this.getRegEx(this.urlHostData[3]);
    this.port = config && config.port || this.urlHostData[2] || 3000;
    this.path = this.urlHostData[3].replace(':id', '');
  
    if (typeof window !== 'undefined') {
      this.send = this.webSend;
    }
  }