onMessage method
void
onMessage(
- String topic,
- String data,
- 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);
}
}