gameLobby method

  1. @override
Stream<GameInfo> gameLobby(
  1. PlayerID playerID,
  2. GameCode code
)
override

Implementation

@override
Stream<GameInfo> gameLobby(PlayerID playerID, GameCode code) async* {
  final backend = NoServerClient.games[code]?.container;
  final ss = StreamController<GameInfo>();
  if (backend == null) {
    return;
  }

  backend.listen<Stream<GameInfo>>(
      BackendProviders.playerLobby(playerID).stream, (prev, curr) async {
    // ignore: prefer_foreach
    await for (final e in curr) {
      ss.add(e);
    }
  }, fireImmediately: true);
  yield* ss.stream;
  await ss.close();
}