From e16fb6fc47220bf3a6141f6085ace7ce11985f31 Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Tue, 14 Apr 2026 01:31:15 +0300 Subject: [PATCH] feat(provider): standardize datachannel message size limits and extract send delay --- internal/provider/jazz/peer.go | 12 +++++++++++- internal/provider/telemost/peer.go | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/internal/provider/jazz/peer.go b/internal/provider/jazz/peer.go index 7a126f1..2df7c7d 100644 --- a/internal/provider/jazz/peer.go +++ b/internal/provider/jazz/peer.go @@ -17,6 +17,11 @@ import ( "github.com/pion/webrtc/v4" ) +const ( + maxDataChannelMessageSize = 12288 + sendDelay = 2 * time.Millisecond +) + type Peer struct { name string roomInfo *RoomInfo @@ -474,6 +479,11 @@ func (p *Peer) processSendQueue() { case <-p.closeCh: return case data := <-p.sendQueue: + if len(data) > maxDataChannelMessageSize { + logger.Debugf("[Jazz] Message too large: %d bytes (max %d)", len(data), maxDataChannelMessageSize) + continue + } + encoded := EncodeDataPacket(data) logger.Verbosef("[Jazz] Sending %d bytes (encoded to %d bytes)", len(data), len(encoded)) @@ -482,7 +492,7 @@ func (p *Peer) processSendQueue() { p.queueReconnect() return } - time.Sleep(2 * time.Millisecond) + time.Sleep(sendDelay) } } } diff --git a/internal/provider/telemost/peer.go b/internal/provider/telemost/peer.go index 85ddd02..10500ad 100644 --- a/internal/provider/telemost/peer.go +++ b/internal/provider/telemost/peer.go @@ -22,7 +22,7 @@ import ( ) const ( - realDataChannelMessageLimit = 8192 + realDataChannelMessageLimit = 12288 defaultSendDelayLow = 2 * time.Millisecond defaultSendDelayMax = 12 * time.Millisecond defaultTelemetryInterval = 20 * time.Second