ClientSession constructor
ClientSession({
- required String id,
- required TransportConnection connection,
- required CRDTServerRegistry serverRegistry,
- Compressor? compressor,
- List<
ServerSyncPlugin> plugins = const [],
Constructor
Implementation
ClientSession({
required this.id,
required TransportConnection connection,
required CRDTServerRegistry serverRegistry,
Compressor? compressor,
List<ServerSyncPlugin> plugins = const [],
}) : _connection = connection,
_serverRegistry = serverRegistry,
_plugins = plugins,
_sessionEventController = StreamController<SessionEvent>.broadcast(),
_messageCodec = CompressedCodec<Message>(
PluginAwareMessageCodec.fromPlugins(
plugins: plugins,
defaultCodec: JsonMessageCodec<Message>(
toJson: (message) => message.toJson(),
fromJson: Message.fromJson,
),
),
compressor: compressor ?? NoCompression.instance,
) {
_connection.incoming.listen(
_handleData,
onError: _handleConnectionError,
onDone: _handleConnectionClosed,
);
_startHeartbeatMonitoring();
for (final plugin in _plugins) {
plugin.onNewSession(this);
}
}