라이브킷 에이젼트에서 다음과 같이 참여자가 나갔을때(participant_disconnec...
# ask-ai
l
라이브킷 에이젼트에서 다음과 같이 참여자가 나갔을때(participant_disconnected) 이벤트가 트리거가 안되는데, 서버에 어떤 설정을 해줘야되? @room.on("participant_disconnected")
t
Thanks for reaching out, Dan(송희웅). I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
요청하신 부분(에이전트에서
participant_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 리스너 등록 시점 확인 ◦ 이벤트 리스너가 룸 연결 전에 등록되어 있어야 합니다. 예:
Copy code
@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