callbackProxy_(callback, message) {
    try {
      var result = callback(message['data']);
      if (result instanceof goog.async.Deferred) {
        // Send the response asynchronously.
        result.addCallbacks(
            goog.bind(this.sendSuccessResponse_, this, message),
            goog.bind(this.sendErrorResponse_, this, message));
      } else {
        // Respond immediately.
        this.sendSuccessResponse_(message, result);
      }
    } catch (anyError) {
      this.sendErrorResponse_(message, anyError);
    }
  }
A intermediary proxy for service callbacks to be invoked and return their
their results to the remote caller's callback.
If the service callback returned a Deferred object, appropriate response
will be sent when the object gets resolved.
@param {function((string|!Object))} callback The callback to process the
    incoming messages. Passed the payload.
@param {!Object|string} message The message containing the signature and
    the data to invoke the service callback with.
@private