limited-planet-15554
12/30/2025, 5:58 AMtall-airline-16756
12/30/2025, 5:58 AMtall-airline-16756
12/30/2025, 5:58 AMparticipant_disconnected 이벤트가 트리거되지 않는 문제)에 대해 답변드립니다.
문제 원인과 확인할 설정
• 대부분의 경우 서버에서 별도 설정이 필요 없으며 이벤트는 기본적으로 전달됩니다.
• 하지만 프로젝트나 룸에 Livestreaming Mode(설정명: skip_subscriber_broadcast)가 켜져 있으면, 뷰어(트랙을 퍼블리시하지 않은 참가자) 에 대한 participant_disconnected 이벤트가 생략됩니다. 퍼블리셔(트랙을 퍼블리시했거나 metadata를 설정한 참가자)는 여전히 이벤트가 발생합니다.
점검 및 해결 방법
1. `skip_subscriber_broadcast`가 활성화되어 있는지 확인
◦ `cloud.config.yaml`의 feature_flags.features.skip_subscriber_broadcast 설정을 확인하세요.
◦ 활성화되어 있으면 비활성화하거나, 룸 정규식으로 특정 룸에만 적용되도록 제한하세요.
1. 에이전트 연결 상태 확인
◦ 에이전트가 참가자가 떠날 때 반드시 룸에 연결되어 있어야 이벤트를 받습니다. 에이전트가 미리 끊겼는지 확인해 주세요.
1. SDK 리스너 등록 시점 확인
◦ 이벤트 리스너가 룸 연결 전에 등록되어 있어야 합니다. 예:
@room.on("participant_disconnected")
def on_participant_disconnect(participant):
print(f"Participant {participant.identity} disconnected")
1. 웹훅을 백업으로 사용
◦ 실시간 SDK 이벤트가 누락될 경우를 대비해 participant_left 웹훅을 설정하면 로그/감사 용도로 항상 수신할 수 있습니다.
요약
• `participant_disconnected`가 안 오는 가장 흔한 이유는 `skip_subscriber_broadcast`(라이브스트림 모드)가 켜져 있어서 뷰어 이벤트가 생략되는 것입니다.
• 에이전트가 연결된 상태인지, 리스너가 올바르게 등록되어 있는지도 함께 확인해 주세요. 필요하면 웹훅을 추가 백업으로 활용하세요.
원하시면 다음 정보를 알려주시면 더 구체적으로 도와드리겠습니다:
• 해당 룸/프로젝트에서 skip_subscriber_broadcast 설정 상태
• 에이전트가 실제로 연결되어 있던 시점의 로그(있다면)
• 문제가 발생하는 참가자가 퍼블리셔인지 뷰어인지 Sources: Livestream Mode | Server-side | livekit/livekit_composite | DeepWiki