code: function _onMessage(message) {
          var response    = JSON.parse(message.data),
              msgRecord   = _messageCallbacks[response.id],
              callback    = msgRecord && msgRecord.callback,
              msgText     = (msgRecord && msgRecord.message) || "No message";
  
          if (msgRecord) {
              // Messages with an ID are a response to a command, fire callback
              callback(response.result, response.error);
              delete _messageCallbacks[response.id];
          } else if (response.method) {
              // Messages with a method are an event, trigger event handlers
              var domainAndMethod = response.method.split("."),
                  domain = domainAndMethod[0],
                  method = domainAndMethod[1];
  
              EventDispatcher.triggerWithArray(exports[domain], method, response.params);
          }
  
          // Always fire event handlers for all messages/errors
          exports.trigger("message", response);
  
          if (response.error) {
              exports.trigger("error", response.error, msgText);
          }
      }
docs: Received message from the WebSocket
  A message can be one of three things:
  1. an error -> report it
  2. the response to a previous command -> run the stored callback
  3. an event -> trigger an event handler method
  @param {object} message