CRDTSocketClient constructor

CRDTSocketClient({
  1. List<ClientSyncPlugin>? plugins,
  2. DocumentCapabilities? capabilities,
})

Creates a client, with plugins attached to it.

plugins extend what the client does with the frames it exchanges.

capabilities states what this build can read. One passed here is sent as complete, so the server also refuses a kind left out. Leave it out and it is derived from the document with CRDTDocument.describeBuildCapabilities, sent as incomplete.

Implementation

CRDTSocketClient({
  List<ClientSyncPlugin>? plugins,
  DocumentCapabilities? capabilities,
})  : plugins = List.unmodifiable(plugins ?? <ClientSyncPlugin>[]),
      _declaredCapabilities = capabilities {
  for (final plugin in this.plugins) {
    plugin._client = this;
  }
}