docs: function Transport(location, callback) {
    if (false === (this instanceof Transport)) throw new Error('new operator required');
    if (typeof location != 'string') throw new Error('argument must a url string');
    if (typeof callback != 'function') throw new Error('argument must a callback');
    var self = this;
    self.connected = false;
    self.initialConnect = true;
    self.location = location;
    if (self.location === '') self.location = 'http host';
    self.socket = io.connect(location, {reconnection: false});
    self.socket.on('connect', function () {
      self.connected = true;
      self.initialConnect = false;
      console.log('socket.io (' + self.location + ') connected');
      callback.call(self, new Message('Connected', ''));
    });
    self.socket.on('connecting', function () {
      console.log('socket.io (' + self.location + ') connecting');
    });
    self.socket.on('error', function (reason) {
      var theError = 'general error with ' + self.location + (reason ? ', reason ' + reason : '');
      console.error(theError);
      // If have not ever connected then signal error
      if (self.initialConnect) {
        callback.call(self, new Message('Error', theError));
      }
    });
    self.socket.on('connect_error', function (reason) {
      var theError = 'connect error with ' + self.location + (reason ? ', reason ' + reason : '');
      console.error(theError);
      // If have not ever connected then signal error
      if (self.initialConnect) {
        callback.call(self, new Message('Error', theError));
      }
    });
    self.socket.on('connect_failed', function (reason) {
      var theError = 'connect failed with ' + self.location + (reason ? ', reason ' + reason : '');
      console.error(theError);
      // If have not ever connected then signal error
      if (self.initialConnect) {
        callback.call(self, new Message('Error', theError));
      }
    });
    self.socket.on('message', function (obj) {
      if (self.rawCallBack) {
        self.rawCallBack(obj);
      } else {
        console.log('socket.io (' + self.location + ') message: ' + obj);
      }
    });
    self.socket.on('disconnect', function (reason) {
      self.connected = false;
      console.log('socket.io (' + self.location + ') disconnect: ' + reason);
    });
  }