getOnlineParticipants method

Iterable<Participant> getOnlineParticipants(
  1. MeshDocument document
)

Implementation

Iterable<Participant> getOnlineParticipants(MeshDocument document) sync* {
  final room = _requireRoom('Resolving online participants');
  final seenParticipantIds = <String>{};
  for (final participantName in getParticipantNames(document)) {
    if (participantName == room.localParticipant?.getAttribute("name")) {
      final localParticipant = room.localParticipant;
      if (localParticipant != null && seenParticipantIds.add(localParticipant.id)) {
        yield localParticipant;
      }
    }
    for (final part in room.messaging.remoteParticipants.where((x) => x.getAttribute("name") == participantName)) {
      if (seenParticipantIds.add(part.id)) {
        yield part;
      }
    }
  }
}