send event when participant disconnects

This commit is contained in:
David Zhao
2020-12-05 17:53:33 -08:00
parent abd17af4d4
commit 71a7914eec
2 changed files with 4 additions and 4 deletions

View File

@@ -108,6 +108,8 @@ func (r *Room) RemoveParticipant(id string) {
if p, ok := r.participants[id]; ok {
// also stop connection if needed
p.Close()
// update clients
r.broadcastParticipantState(p)
}
delete(r.participants, id)

View File

@@ -85,6 +85,8 @@ func (s *RTCService) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
defer func() {
// remove peer from room upon disconnection
room.RemoveParticipant(participant.ID())
participant.Close()
log.Infow("WS connection closed")
}()
@@ -108,10 +110,6 @@ func (s *RTCService) ServeHTTP(w http.ResponseWriter, r *http.Request) {
log.Errorw("could not handle join", "err", err, "participant", participant.ID())
return
}
defer func() {
// remove peer from room upon disconnection
room.RemoveParticipant(participant.ID())
}()
case *livekit.SignalRequest_Negotiate:
if participant.State() == livekit.ParticipantInfo_JOINING {
log.Errorw("cannot negotiate before peer offer", "participant", participant.ID())