RelayClientSession constructor

RelayClientSession({
  1. required String id,
  2. required TransportConnection connection,
  3. required RelayStore store,
  4. required RelayCompactionCoordinator compaction,
  5. Compressor? compressor,
  6. MessageCodec<Message>? messageCodec,
  7. int? maxBufferSize,
  8. List<ServerSyncPlugin> plugins = const [],
})

Relay client session on server.

Implements the relay protocol on top of ClientSession: the session persists pushed change blobs in the RelayStore and serves the room state on join, without ever interpreting CRDT data.

Constructor

Implementation

RelayClientSession({
  required super.id,
  required super.connection,
  required RelayStore store,
  required RelayCompactionCoordinator compaction,
  super.compressor,
  MessageCodec<Message>? messageCodec,
  super.maxBufferSize,
  super.plugins,
})  : _store = store,
      _compaction = compaction,
      super.base(
        messageCodec: messageCodec ??
            JsonMessageCodec<Message>(
              toJson: (message) => message.toJson(),
              fromJson: (json) =>
                  RelayMessage.fromJson(json) ?? Message.fromJson(json),
            ),
      );