WebSocketClient constructor

WebSocketClient({
  1. required String url,
  2. required CRDTDocument document,
  3. required PeerId author,
  4. Compressor? compressor,
  5. List<ClientSyncPlugin>? plugins,
})

Constructor

Implementation

WebSocketClient({
  required this.url,
  required this.document,
  required this.author,
  Compressor? compressor,
  super.plugins,
})  : _messageController = StreamController<Message>.broadcast(),
      _connectionStatusController =
          StreamController<ConnectionStatus>.broadcast()
            ..add(ConnectionStatus.disconnected),
      _connectionStatusValue = ConnectionStatus.disconnected {
  _syncManager = SyncManager(document: document, client: this);
  _messageCodec = CompressedCodec<Message>(
    PluginAwareMessageCodec.fromPlugins(
      plugins: plugins,
      defaultCodec: JsonMessageCodec<Message>(
        toJson: (message) => message.toJson(),
        fromJson: Message.fromJson,
      ),
    ),
    compressor: compressor ?? NoCompression.instance,
  );

  messages.listen(_handleMessage);
}