start method

Future<void> start({
  1. void onDone()?,
  2. void onError(
    1. Object? error
    )?,
})

Implementation

Future<void> start({void Function()? onDone, void Function(Object? error)? onError}) async {
  protocol.start(
    onDone: () {
      final error = RoomServerException("room connection closed before request completed");
      _failPendingRequests(error);
      if (!_ready.isCompleted) {
        _ready.completeError(error);
      }
      if (onDone != null) {
        onDone();
      }
    },
    onError: (error) {
      final wrapped = RoomServerException("room connection error: $error");
      _failPendingRequests(wrapped);
      if (!_ready.isCompleted) {
        _ready.completeError(wrapped);
      }
      if (onError != null) {
        onError(error);
      }
    },
  );

  sync.start();

  await ready;
}