ConnectionCheck class

Utility to diagnose connection issues with a LiveKit server, a Dart port of the ConnectionCheck helper from client-sdk-js.

Run it proactively (e.g. at app start) or reactively when connecting to a room fails, to determine why a connection cannot be established (firewall, VPN, blocked TURN, etc.).

final connectionCheck = ConnectionCheck(url, token);
final listener = connectionCheck.createListener();
listener.on<ConnectionCheckUpdateEvent>((event) {
  print('check ${event.info.name}: ${event.info.status}');
});

// the recommended minimum set of checks
await connectionCheck.checkWebsocket();
await connectionCheck.checkWebRTC();
await connectionCheck.checkTURN();

print('all checks passed: ${connectionCheck.isSuccess}');
await listener.dispose();
await connectionCheck.dispose();

Each check connects to the server independently and returns a CheckInfo describing the outcome. checkPublishAudio, checkPublishVideo and checkConnectionProtocol capture from the microphone/camera and therefore require the corresponding permissions to be granted beforehand.

Mixed-in types

Constructors

ConnectionCheck(String url, String token, {CheckerOptions? options})

Properties

disposeFuncCount → int
no setterinherited
events → EventsEmitter<ConnectionCheckEvent>
finalinherited
hashCode → int
The hash code for this object.
no setterinherited
isDisposed → bool
no setterinherited
isSuccess → bool
True when no check has failed (so far).
no setter
options → CheckerOptions
Options shared by all checks of this run.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
token → String
Access token used for the checks.
final
url → String
URL of the LiveKit server to run the checks against.
final

Methods

checkCloudRegion() → Future<CheckInfo>
Checks connection quality to the closest LiveKit Cloud regions and determines the best one. Skipped for non-Cloud servers. The returned CheckInfo.data contains the best region's RegionStats.
checkConnectionProtocol() → Future<CheckInfo>
Compares connection quality between UDP and TCP.
checkPublishAudio() → Future<CheckInfo>
Verifies that microphone audio can be captured and published.
checkPublishVideo() → Future<CheckInfo>
Verifies that camera video can be captured and published.
checkReconnect() → Future<CheckInfo>
Verifies that a connection can be resumed after an interruption.
checkTURN() → Future<CheckInfo>
Verifies that a connection via a TURN relay can be established.
checkWebRTC() → Future<CheckInfo>
Verifies that a WebRTC (peer) connection can be established.
checkWebsocket() → Future<CheckInfo>
Verifies that a WebSocket connection to the server can be established.
createListener({bool synchronized = false}) → EventsListener<ConnectionCheckEvent>
inherited
dispose() → Future<bool>
inherited
getResults() → List<CheckInfo>
Results of all checks that have been run (or are running).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onDispose(OnDisposeFunc func) → void
inherited
runCheck(Checker check) → Future<CheckInfo>
Runs a single Checker, reporting its progress through ConnectionCheckUpdateEvents, and disposes it when done.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited