bloom_realtime_client library

Query cache invalidation extras for bloom_realtime.

Bridges channel broadcasts directly to bloom_js_native's pure-Dart BloomData client query cache (signals-backed, zero Flutter dependency).

Import this library in client applications that use BloomQuery or BloomData. Pure server entrypoints that do not need the client query invalidation bridge can import package:bloom_realtime/bloom_realtime.dart instead.

Example

import 'package:bloom_js_native/bloom_js_native.dart';
import 'package:bloom_realtime/bloom_realtime_client.dart';

void main() async {
  final client = BloomRealtimeClient(
    uri: Uri.parse('ws://localhost:8080/ws/realtime'),
  );
  await client.connect();

  // Automatically invalidate BloomData query cache when updates arrive
  final bridge = client.invalidateQueriesOnBroadcast(
    channel: 'lists:42',
    key: ['lists', '42', 'todos'],
  );

  // Later, when tearing down or navigating away:
  bridge.cancel();
}

Classes

BloomChannelHub
In-process registry and pub/sub broadcaster of WebSocket connections grouped by channel name.
BloomPresenceTracker
Simple presence tracker layered on top of BloomChannelHub.
BloomRealtimeClient
Client-side Realtime manager that connects to a Bloom WebSocket endpoint.
BloomRealtimeCluster
High-throughput multi-isolate cluster orchestrator for Bloom Realtime.
PresenceUser
Representation of a user's presence state in a channel.
RealtimeMessage
Wire message envelope shared between Bloom Realtime client and server.
RealtimeQueryBridge
Bridges Realtime channel broadcasts to the BloomData client query cache.

Enums

RealtimeConnectionState
Connection states for BloomRealtimeClient.

Extensions

BloomRealtimeClientQueryBridgeExtension on BloomRealtimeClient
Extension on BloomRealtimeClient for seamless query invalidation binding.
RealtimeChannelStreamQueryBridgeExtension on Stream<Map<String, dynamic>>
Extension on channel streams for ergonomic query invalidation binding.