From 2916897b8532f2d7d592f519c2c04f889226c172 Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Thu, 9 Apr 2026 19:00:07 +0300 Subject: [PATCH] feat(peer): Add verbose logging for send queue and datachannel buffer monitoring --- internal/telemost/peer.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/internal/telemost/peer.go b/internal/telemost/peer.go index 0a233d9..8b0ed2d 100644 --- a/internal/telemost/peer.go +++ b/internal/telemost/peer.go @@ -184,10 +184,16 @@ func (p *Peer) Send(data []byte) error { return fmt.Errorf("send queue closed") } + queueLen := len(p.sendQueue) + if queueLen > 100 { + logger.Verbose("Send queue length: %d", queueLen) + } + select { case p.sendQueue <- data: return nil default: + logger.Debug("Send queue full! Dropping packet of %d bytes", len(data)) return fmt.Errorf("send queue full") } } @@ -637,6 +643,15 @@ func (p *Peer) processSendQueue() { for { select { case data := <-p.sendQueue: + buffered := uint64(0) + if p.dc != nil { + buffered = p.dc.BufferedAmount() + } + + if buffered > 256*1024 { + logger.Verbose("DataChannel buffer full: %d bytes, waiting...", buffered) + } + for p.dc != nil && p.dc.BufferedAmount() > 256*1024 { time.Sleep(1 * time.Millisecond) } @@ -644,6 +659,8 @@ func (p *Peer) processSendQueue() { if p.dc != nil && p.dc.ReadyState() == webrtc.DataChannelStateOpen { if err := p.dc.Send(data); err != nil { logger.Debug("DataChannel send error: %v", err) + } else { + logger.Verbose("Sent %d bytes to DataChannel (buffered: %d)", len(data), p.dc.BufferedAmount()) } } case <-p.closeCh: