bind static method
Listens to a realtime channel on client and calls BloomData.invalidateQueries
with key on every received message, or when filter matches.
client: Active BloomRealtimeClient connection.channel: Channel name to subscribe to.key:BloomDataquery key list to invalidate.filter: Optional callback predicate to filter which broadcast payloads trigger invalidation.
Returns a RealtimeQueryBridge whose cancel method tears down the subscription.
Example:
final bridge = RealtimeQueryBridge.bind(
client: realtimeClient,
channel: 'todos:42',
key: ['todos', 42],
);
Implementation
static RealtimeQueryBridge bind({
required BloomRealtimeClient client,
required String channel,
required List<dynamic> key,
bool Function(Map<String, dynamic> payload)? filter,
}) {
final stream = client.subscribe(channel);
final sub = stream.listen((payload) {
if (filter == null || filter(payload)) {
BloomData.invalidateQueries(key);
}
});
return RealtimeQueryBridge._(sub);
}