WebSocketRelayServer.test constructor

WebSocketRelayServer.test({
  1. required Future<HttpServer> serverFactory(),
  2. WebSocketServerTransformer? serverTransformer,
  3. RelayStore? store,
  4. RelayCompactionCoordinator? compaction,
  5. Compressor? compressor,
  6. MessageCodec<Message>? messageCodec,
  7. int? maxBufferSize,
  8. List<ServerSyncPlugin>? plugins,
})

WebSocket relay server implementation.

A RelaySessionHost that owns a dart:io HttpServer: it binds on start, upgrades every WebSocket request it receives and hands the socket to the host. To serve the relay protocol from an HTTP server you already have, use RelaySessionHost directly and call acceptConnection yourself.

A relay server rebroadcasts opaque CRDT change blobs to the other clients of a room and persists them in a RelayStore, without ever interpreting CRDT data: merging is entirely a client concern. One server hosts many rooms, keyed by document id.

Constructor for testing

Implementation

WebSocketRelayServer.test({
  required Future<HttpServer> Function() serverFactory,
  WebSocketServerTransformer? serverTransformer,
  super.store,
  super.compaction,
  super.compressor,
  super.messageCodec,
  super.maxBufferSize,
  super.plugins,
})  : _serverFactory = serverFactory,
      _serverTransformer =
          serverTransformer ?? DefaultWebSocketServerTransformer();