addListener method
Adds a listener to a named channel. Whenever a message is posted using
postMessage, the listener
will be notified.
Implementation
void addListener(
Session session,
String channelName,
MessageCentralListenerCallback listener,
) {
// Find or create channel
var channel = _getChannel(channelName);
channel.add(listener);
var subscribedChannels = _sessionToChannelNamesLookup[session];
if (subscribedChannels == null) {
subscribedChannels = {};
_sessionToChannelNamesLookup[session] = subscribedChannels;
}
subscribedChannels.add(channelName);
var callbacks = _sessionToCallbacksLookup[session];
if (callbacks == null) {
callbacks = {};
_sessionToCallbacksLookup[session] = callbacks;
}
callbacks.add(listener);
if (session.serverpod.redisController != null) {
session.serverpod.redisController!.subscribe(
channelName,
_receivedRedisMessage,
);
}
}