서브그룹 예제: 여러 서브그룹
예제를 통해 한 그룹 통화(컨퍼런스)에 여러 서브그룹이 있을 때 어떻게 동작하는지 살펴봅시다.
요구사항
이 예제의 요구사항은 다음과 같습니다.
- 방 안에 여러 서브그룹이 있음
- 참여자들은 방에 입장한 후 한 서브그룹을 선택할 수 있음
- 참여자들의 서브그룹 활동을 감시하는 숨겨진 노드 하나가 있음
애플리케이션 설계
이 예제를 위한 애플리케이션 설계는 다음과 같습니다.
-
사용할 수 있는 서브그룹 및 그 미디어 유형을 정의합니다.
서브그룹 통신 유형 서브그룹 이름 STUDY 오디오 및 비디오 study
TRIP 오디오 trip
WORKOUT 오디오 및 비디오 workout
서브그룹 이름은 PlanetKit API가 사용하는 값입니다. 이 값은 유일해야 하며, NULL 문자를 포함해 길이가 16바이트보다 짧아야 합니다.
여기서는 모든 참여자가 이미 위의 서브그룹 목록을 알고 있다고 가정합시다.
-
마스터와 참여자를 설정합니다.
- 마스터는 모든 서브그룹을 구독합니다.
- 참여자는 관심 있는 서브그룹 하나를 구독합니다.
-
peerUpdate 속성값을 PRIVATE로 설정합니다.
- 서브그룹에 가입한 마스터와 멤버는
onPeerListUpdated
를 이용해 누가 이 서브그룹에 가입했는지 알게 됩니다.
- 서브그룹에 가입한 마스터와 멤버는
-
videoUpdate 속성값을 TRUE로 설정합니다.
- 비디오 스트림을 사용할 수 있습니다.
토폴로지
PlanetKit API 흐름
아래와 같은 상황에서 P1이라는 참여자가 STUDY 서브그룹에 가입할 때 PlanetKit API 호출 흐름을 알아봅시다.
- TRIP 서브그룹
- T1, T2가 가입 및 미디어 제어 완료
- WORKOUT 서브그룹
- W1, W2가 가입 및 미디어 제어 완료
- STUDY 서브그룹
- S1만 가입
- 마스터(M)는 모든 참여자를 감시
- 오디오를 음 소거하고 비디오를 비활성화
- 모든 서브그룹의 음성 통화를 청취
- STUDY와 WORKOUT 서브그룹의 비디오를 시청
- P1은 오디오를 음 소거한 채 입장
P1은 아래처럼 STUDY 서브그룹 멤버와 통신합니다.
- P1이 STUDY 서브그룹에 가입합니다.
- 서브그룹 멤버들(마스터 포함)은 알림을 통해 이 정보를 알게 됨
- P1은 알림을 통해 S1이 비디오 스트림을 전송한다는 것을 알게 됨
- STUDY 서브그룹의 오디오 스트림이 자동으로 P1에게 전송됨
- P1이 음 소거를 해제하고 STUDY 서브그룹에서 발언합니다.
- P1의 오디오가 STUDY 서브그룹에 전송됨
- P1이 STUDY 서브그룹에 비디오를 전송합니다.
- 서브그룹 멤버들은 알림을 통해 P1이 비디오를 활성화했다는 것을 알게 됨
- 서브그룹 멤버들이 P1의 비디오를 수신하겠다고 요청함