supabase_realtime 3.0.0-dev.1 copy "supabase_realtime: ^3.0.0-dev.1" to clipboard
supabase_realtime: ^3.0.0-dev.1 copied to clipboard

Listens to changes in a PostgreSQL Database and via websockets. This is for usage with Supabase Realtime server.

example/main.dart

import 'package:logging/logging.dart';
import 'package:supabase_realtime/supabase_realtime.dart';

/// Example to use with Supabase Realtime https://supabase.com/
Future<void> main() async {
  // Supabase packages log through `package:logging` under the `supabase`
  // logger hierarchy. Attach a listener to receive the records.
  Logger.root.level = Level.ALL;
  Logger.root.onRecord.listen((record) {
    // ignore: avoid_print
    print('${record.loggerName}: ${record.level.name}: ${record.message}');
  });

  final socket = RealtimeClient(
    'ws://SUPABASE_API_ENDPOINT/realtime/v1',
    parameters: {'apikey': 'SUPABASE_API_KEY'},
  );

  final channel = socket.channel('realtime:public');
  channel
      .onPostgresChanges(
        event: PostgresChangeEvent.all,
        filter: PostgresChangeFilter(
          type: PostgresChangeFilterType.eq,
          column: 'column',
          value: 'value',
        ),
      )
      .listen((payload) {});
  channel
      .onPostgresChanges(
        event: PostgresChangeEvent.delete,
        schema: 'public',
      )
      .listen((payload) {
        print('channel delete payload: ${payload.toString()}');
      });
  channel
      .onPostgresChanges(
        event: PostgresChangeEvent.insert,
        schema: 'public',
      )
      .listen((payload) {
        print('channel insert payload: ${payload.toString()}');
      });

  socket.onMessage.listen((message) => print('MESSAGE $message'));

  // on connect and subscribe
  await socket.connect();
  channel.onStatusChange.listen(
    (change) => print('STATUS ${change.status.name}'),
  );
  channel.subscribe();

  // delay 20s to receive events from server
  await Future.delayed(const Duration(seconds: 20));

  // on unsubscribe and disconnect
  await channel.unsubscribe();
  await socket.disconnect();
}
0
likes
160
points
56
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

Listens to changes in a PostgreSQL Database and via websockets. This is for usage with Supabase Realtime server.

Homepage
Repository (GitHub)
View/report issues

Topics

#supabase #realtime #websocket #database #backend

License

MIT (license)

Dependencies

collection, http, logging, meta, supabase_common, web_socket_channel

More

Packages that depend on supabase_realtime