getSid method

Future<String> getSid()

server assigned unique room id. returns once a sid has been issued by the server.

Implementation

Future<String> getSid() async {
  if (engine.connectionState == ConnectionState.disconnected) {
    return '';
  }

  if (_roomInfo != null && _roomInfo!.sid.isNotEmpty) {
    return _roomInfo!.sid;
  }

  final completer = Completer<String>();

  events.on<SignalRoomUpdateEvent>((event) {
    if (event.room.sid.isNotEmpty && !completer.isCompleted) {
      completer.complete(event.room.sid);
    }
  });

  events.once<RoomDisconnectedEvent>((event) {
    if (!completer.isCompleted) {
      completer.complete('');
    }
  });

  return completer.future;
}