subscribeToMessageStreams method
List<StreamSubscription<State> >
subscribeToMessageStreams(
- StreamController<
Message> messageStream
Subscribe to the message streams of all the services
registered with the hub and adds the messages to a
single messageStream
.
Implementation
List<StreamSubscription<app.State>> subscribeToMessageStreams(
StreamController<app.Message> messageStream,
) {
final subscriptions = <StreamSubscription<app.State>>[];
for (var service in _services) {
subscriptions.add(
service.stream.listen(
(state) {
_logger.fine('Received state update: $state');
for (var message in state.messages) {
service.removeStateMessage(message);
if (!_queuedMessageHashes.contains(message.hashCode)) {
_queuedMessageHashes.add(message.hashCode);
messageStream.add(message);
}
}
},
),
);
}
return subscriptions;
}