WebSocketRelayClient constructor

WebSocketRelayClient({
  1. required String url,
  2. required CRDTDocument document,
  3. required PeerId author,
  4. Compressor? compressor,
  5. MessageCodec<Message>? messageCodec,
  6. Duration? pingInterval,
  7. Duration? pingTimeout,
  8. Duration? handshakeTimeout,
  9. int? maxBufferSize,
  10. int? maxReconnectAttempts,
  11. Duration? reconnectBaseDelay,
  12. Duration? reconnectMaxDelay,
  13. Duration? reconnectJitter,
  14. 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

Implementation

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