connect method
Starts (or restarts) the chat connection. Safe to call again after failures.
resolveChatToken is invoked for the initial link and after every drop so
each WebSocket handshake uses a valid IVS token.
Implementation
Future<void> connect({
required String region,
required Future<String> Function() resolveChatToken,
}) async {
_disposed = false;
_started = true;
_region = region;
_resolveChatToken = resolveChatToken;
_reconnectTimer?.cancel();
_reconnectTimer = null;
_backoffMs = 1000;
await _openSocket(reason: 'initial');
}