removeNode method
This method is called every time a listener closes the stream. The node is kept when it has listeners, a request handler, a pin from a transport, or when this is a model bus.
Implementation
bool removeNode(Topic topic, EventNode node) {
final pinned = node is KeepAliveNode && (node as KeepAliveNode).keepAlive;
if (!node.streamControllerValue.hasListener &&
!isModelBus &&
!_hasHandlerFor(topic) &&
!pinned) {
unawaited(node.dispose());
_eventsMap.remove(topic);
_patternMap.remove(topic);
return true;
}
return false;
}