newMessageReceived method

void newMessageReceived(
  1. String messageString
)

PROTECTED: DO NOT USE THIS METHOD UNLESS YOU ARE AN ActiveBrokerInterface !

This method could be used from an implementation of this interface when it receives a message. It decodes the messageString, creates a new message and notifies the subscribed callbacks.

This shouldn't throw anything for safe usage.

Implementation

void newMessageReceived(String messageString) {
  try {
    final Map<String, dynamic> decodedMessage =
        jsonDecode(messageString) as Map<String, dynamic>;
    final Message message =
        BrokerInterface.transformJsonToMessage(decodedMessage);
    if (message is UserMessage) {
      _notifyUserMessageReceived(message);
    } else if (message is EventMessage) {
      _notifyEventMessageReceived(message);
    } else if (message is EventSubscriptionRequest) {
      _notifyEventSubscriptionRequestReceived(message);
    } else if (message is EventSubscriptionResponse) {
      _notifyEventSubscriptionResponseReceived(message);
    } else if (message is ServiceRequest) {
      _notifyServiceRequestReceived(message);
    } else if (message is ServiceReply) {
      _notifyServiceReplyReceived(message);
    } else if (message is GetValueRequest) {
      _notifyGetValueRequestReceived(message);
    } else if (message is GetValueReply) {
      _notifyGetValueReplyReceived(message);
    } else {
      _notifyInvalidMessageReceived(
          messageString, ParseException('unknown message type'));
    }
  } on TypeError catch (e) {
    _notifyInvalidMessageReceived(
        messageString, ParseException(e.stackTrace.toString()));
  } on InvalidJsonSchemaException catch (e) {
    _notifyInvalidMessageReceived(messageString, e);
  }
}