WebRTC 2.30.0 (별 건 아니고 그냥 docs 보고 옮긴 내용들,,)


OpenVidu 아키텍처 🔗

모든 OpenVidu 애플리케이션은 세 가지 부분으로 구성됩니다.


기본 개념 🔗

세션 🔗

세션은 참가자가 연결하여 오디오 및 비디오 스트림을 보내고 받을 수 있는 가상 룸입니다. 동일한 세션에 연결된 참가자만 서로를 보고 들을 수 있습니다. 세션당 참가자 수는 사용 사례에 따라 다릅니다. 간단한 1대1 통화의 경우 2명, 대규모 화상 회의의 경우 수십 명까지 가능합니다.

연결 🔗

연결은 세션의 각 참가자를 나타냅니다. 연결은 애플리케이션 서버에서 초기화해야 하며, 해당 토큰은 세션에 연결하기 위해 애플리케이션 클라이언트에 전달되어야 합니다. 이렇게 하면 세션에 보안이 제공되어 권한이 없는 사용자가 세션에 연결할 수 없습니다. 따라서 연결은 세션에 연결하는 클라이언트의 "슬롯"으로 볼 수도 있습니다. 애플리케이션 서버에서 슬롯을 초기화하면 해당 슬롯은 연관된 토큰을 사용하는 클라이언트가 차지할 수 있습니다. 클라이언트가 연결을 차지하면 세션의 참가자로 간주됩니다.

토큰 🔗

토큰은 참가자에게 세션에 대한 액세스 권한을 부여하는 데 필요합니다. 각 참가자는 세션에 연결할 때 토큰을 사용합니다. 토큰은 항상 연결과 연관됩니다. 애플리케이션 클라이언트에 전달될 토큰을 얻으려면 애플리케이션 서버에서 연결을 만들어야 합니다. 사실, 토큰은 연결의 슬롯을 차지할 수 있는 키로 볼 수 있는 연결의 속성일 뿐입니다. 애플리케이션 클라이언트에서 소비될 때 토큰은 세션 내부의 참가자에게 메타데이터와 특정 기능을 제공할 수 있습니다.

스트림 🔗

스트림은 세션으로 흐르는 미디어 스트림입니다. 참가자는 스트림을 게시할 수 있으며, 같은 세션의 다른 참가자는 이를 구독할 수 있습니다. 세션에서 어떻게, 언제, 누가, 어떤 유형의 스트림을 게시할 수 있는지에 대한 제한은 없습니다. 이는 전적으로 애플리케이션과 사용 사례에 따라 달라집니다.

https://docs.openvidu.io/en/2.30.0/img/docs/home/session-composition.png