joinRoom method
dynamic
joinRoom(
{ - required String roomId,
- int? secret,
- String? userName,
})
Implementation
joinRoom({required String roomId, int? secret, String? userName}) async {
Completer completer = Completer();
try {
if (_state != CallState.sessionState) {
completer.completeError(
{'error': 'The state that cannot join room, state $_state'});
return;
}
if (roomId.length > 64) {
completer.completeError({'error': 'Invalid room id'});
return;
}
if (userName != null && userName.length > 64) {
completer.completeError({'error': 'Too long user name: $userName'});
return;
}
if (secret != null && secret.toString().length != 6) {
completer
.completeError({'error': 'Secret has to be 6 digits: $secret'});
return;
}
var joinRoomResult = await _ws.requestJoinRoom(roomId, secret, userName);
await _audioPublisher?.publish();
_state = CallState.activeState;
_roomId = joinRoomResult['room_id'];
_roomType = joinRoomResult['room_type'];
var userResult = IResponseJoinRoom(joinRoomResult).toMap();
completer.complete(userResult);
return completer.future;
} catch (error) {
completer.completeError(error);
}
}