WebSocketRelayClient.test constructor

WebSocketRelayClient.test({
  1. required String url,
  2. required CRDTDocument document,
  3. required PeerId author,
  4. required Transport transportFactory(),
  5. Compressor? compressor,
  6. MessageCodec<Message>? messageCodec,
  7. Duration? pingInterval,
  8. Duration? pingTimeout,
  9. Duration? handshakeTimeout,
  10. int? maxBufferSize,
  11. int? maxReconnectAttempts,
  12. Duration? reconnectBaseDelay,
  13. Duration? reconnectMaxDelay,
  14. Duration? reconnectJitter,
  15. Random? random,
  16. List<ClientSyncPlugin>? plugins,
})

RelaySocketClient implementation using web socket.

Reconnects with exponential backoff plus jitter (RelayProtocol.reconnectBaseDelay, doubled per attempt up to RelayProtocol.reconnectMaxDelay) and, unlike WebSocketClient, retries forever by default (maxReconnectAttempts can bound it). A first connect that fails retries the same way, so a client started offline joins once the relay is reachable. disconnect and dispose stop the retries.

Constructor for testing

Implementation

WebSocketRelayClient.test({
  required String url,
  required CRDTDocument document,
  required PeerId author,
  required Transport Function() transportFactory,
  Compressor? compressor,
  MessageCodec<Message>? messageCodec,
  Duration? pingInterval,
  Duration? pingTimeout,
  Duration? handshakeTimeout,
  int? maxBufferSize,
  int? maxReconnectAttempts,
  Duration? reconnectBaseDelay,
  Duration? reconnectMaxDelay,
  Duration? reconnectJitter,
  Random? random,
  List<ClientSyncPlugin>? plugins,
}) : this._(
        url: url,
        document: document,
        author: author,
        transportFactory: transportFactory,
        compressor: compressor,
        messageCodec: messageCodec,
        pingInterval: pingInterval,
        pingTimeout: pingTimeout,
        handshakeTimeout: handshakeTimeout,
        maxBufferSize: maxBufferSize,
        maxReconnectAttempts: maxReconnectAttempts,
        reconnectBaseDelay: reconnectBaseDelay,
        reconnectMaxDelay: reconnectMaxDelay,
        reconnectJitter: reconnectJitter,
        random: random,
        plugins: plugins,
      );