connect method

Future<void> connect([
  1. String? userName
])

Implementation

Future<void> connect([String? userName]) async {
  _userName = userName ?? DateTime.now().millisecondsSinceEpoch.toString();
  final url = "wss://${_token.host}/openvidu?sessionId=${_token.sessionId}";
  _rpc = JsonRpc(onMessage: _onRpcMessage);

  try {
    _rpc?.connect(url);
    _heartbeat();
  } catch (e) {
    _rpc?.disconnect();
    throw NetworkError();
  }

  final response = await _joinRoom(_userName);

  _token.appendInfo(
    role: response["role"],
    coturnIp: response["coturnIp"],
    turnCredential: response["turnCredential"],
    turnUsername: response["turnUsername"],
  );

  _dispatchEvent(Event.joinRoom, {});

  try {
    _localConnection = LocalConnection(response["id"], _token, _rpc!);
    _addAlreadyInRoomConnections(response);
  } catch (e) {
    throw OtherError();
  }
}