upgrade function

Future<void> upgrade(
  1. SqlCrdt crdt,
  2. HttpRequest request, {
  3. Duration? pingInterval = defaultPingInterval,
  4. ServerHandshakeDataBuilder? handshakeDataBuilder,
  5. Map<String, Query>? changesetQueries,
  6. RecordValidator? validateRecord,
  7. ServerOnConnect? onConnect,
  8. OnDisconnect? onDisconnect,
  9. OnChangeset? onChangesetReceived,
  10. OnChangeset? onChangesetSent,
  11. bool verbose = false,
})

Implementation

Future<void> upgrade(
  SqlCrdt crdt,
  HttpRequest request, {
  Duration? pingInterval = defaultPingInterval,
  ServerHandshakeDataBuilder? handshakeDataBuilder,
  Map<String, Query>? changesetQueries,
  RecordValidator? validateRecord,
  ServerOnConnect? onConnect,
  OnDisconnect? onDisconnect,
  OnChangeset? onChangesetReceived,
  OnChangeset? onChangesetSent,
  bool verbose = false,
}) async {
  final webSocket =
      IOWebSocketChannel(await WebSocketTransformer.upgrade(request)
        ..pingInterval = pingInterval);
  late final CrdtSync crdtSync;
  crdtSync = CrdtSync.server(
    crdt,
    webSocket,
    handshakeDataBuilder: handshakeDataBuilder,
    changesetQueries: changesetQueries,
    validateRecord: validateRecord,
    onConnect: (_, customData) => onConnect?.call(crdtSync, customData),
    onDisconnect: onDisconnect,
    onChangesetReceived: onChangesetReceived,
    onChangesetSent: onChangesetSent,
    verbose: verbose,
  );
}