sendMessage method

Object sendMessage(
  1. Message msg
)

Implementation

Object sendMessage(Message msg) {
  if (msg is Call) {
    _callRequests[msg.requestID] = msg.requestID;

    return _serializer.serialize(msg);
  } else if (msg is Register) {
    _registerRequests[msg.requestID] = msg.requestID;

    return _serializer.serialize(msg);
  } else if (msg is UnRegister) {
    _unregisterRequests[msg.requestID] = msg.registrationID;

    return _serializer.serialize(msg);
  } else if (msg is Yield) {
    if (!_invocationRequests.containsKey(msg.requestID)) {
      throw ArgumentError("cannot yield for unknown invocation request");
    }
    _invocationRequests.remove(msg.requestID);

    return _serializer.serialize(msg);
  } else if (msg is Publish) {
    if (msg.options.containsKey("acknowledge") && msg.options["acknowledge"]) {
      _publishRequests[msg.requestID] = msg.requestID;
    }

    return _serializer.serialize(msg);
  } else if (msg is Subscribe) {
    _subscribeRequests[msg.requestID] = msg.requestID;

    return _serializer.serialize(msg);
  } else if (msg is UnSubscribe) {
    _unsubscribeRequests[msg.requestID] = msg.subscriptionID;

    return _serializer.serialize(msg);
  } else if (msg is Error) {
    if (msg.msgType != Invocation.id) {
      throw ArgumentError("send only supported for invocation error");
    }

    var data = _serializer.serialize(msg);
    _invocationRequests.remove(msg.requestID);
    return data;
  }
  throw ArgumentError("unknown message ${msg.runtimeType}");
}