From 72d853589cfc6aa08a9cc1d6c18eb99d0cde3369 Mon Sep 17 00:00:00 2001 From: David Zhao Date: Sun, 20 Dec 2020 13:43:16 -0800 Subject: [PATCH] buffer messages --- pkg/rtc/datatrack.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/rtc/datatrack.go b/pkg/rtc/datatrack.go index e2564f2a2..dc4f0aca5 100644 --- a/pkg/rtc/datatrack.go +++ b/pkg/rtc/datatrack.go @@ -10,6 +10,10 @@ import ( "github.com/livekit/livekit-server/proto/livekit" ) +const ( + dataBufferSize = 50 +) + // DataTrack wraps a WebRTC DataChannel to satisfy the PublishedTrack interface // it shall forward tracks to all of its subscribers type DataTrack struct { @@ -30,7 +34,7 @@ func NewDataTrack(participantId string, dc *webrtc.DataChannel) *DataTrack { id: utils.NewGuid(utils.TrackPrefix), participantId: participantId, dataChannel: dc, - msgChan: make(chan livekit.DataMessage), + msgChan: make(chan livekit.DataMessage, dataBufferSize), lock: sync.RWMutex{}, subscribers: make(map[string]*DownDataChannel), } @@ -110,6 +114,7 @@ func (t *DataTrack) forwardWorker() { for { msg := <-t.msgChan + if msg.Value == nil { // track closed return