onMessage method

  1. @override
void onMessage(
  1. String topic,
  2. String data,
  3. dynamic packet
)
override

Implementation

@override
void onMessage(String topic, String data, packet) {
  // Skip if it came from a wrong topic
  var expectedTopic = getTopic();
  if (!expectedTopic.contains('*') && expectedTopic != topic) {
    return;
  }

  // Deserialize message
  var message = _toMessage(topic, data, packet);
  if (message == null) {
    _logger.error(null, null, 'Failed to read received message');
    return;
  }

  counters.incrementOne('queue.' + getName() + '.received_messages');
  _logger.debug(message.correlation_id, 'Received message %s via %s',
      [message, getName()]);

  // Send message to receiver if its set or put it into the queue
  if (_receiver != null) {
    sendMessageToReceiver(_receiver, message);
  } else {
    _messages.add(message);
  }
}