sniffing: full websocket frame recording

This commit is contained in:
ginuerzh
2024-10-19 20:40:07 +08:00
parent 6b932e35bf
commit 41f527aa46
4 changed files with 76 additions and 34 deletions
+19 -8
View File
@@ -557,12 +557,9 @@ func (h *Sniffer) sniffingWebsocketFrame(ctx context.Context, rw, cc io.ReadWrit
errc := make(chan error, 1)
sampleRate := h.WebsocketSampleRate
if sampleRate <= 0 {
if sampleRate == 0 {
sampleRate = sniffing.DefaultSampleRate
}
if sampleRate > sniffing.MaxSampleRate {
sampleRate = sniffing.MaxSampleRate
}
d := time.Duration(1 / sampleRate * 1e9)
go func() {
@@ -570,8 +567,15 @@ func (h *Sniffer) sniffingWebsocketFrame(ctx context.Context, rw, cc io.ReadWrit
*ro2 = *ro
ro = ro2
ticker := time.NewTicker(d)
defer ticker.Stop()
ticker := &time.Ticker{}
if d > 0 {
ticker = time.NewTicker(d)
defer ticker.Stop()
} else {
tc := make(chan time.Time)
close(tc)
ticker.C = tc
}
buf := &bytes.Buffer{}
for {
@@ -603,8 +607,15 @@ func (h *Sniffer) sniffingWebsocketFrame(ctx context.Context, rw, cc io.ReadWrit
*ro2 = *ro
ro = ro2
ticker := time.NewTicker(d)
defer ticker.Stop()
ticker := &time.Ticker{}
if d > 0 {
ticker = time.NewTicker(d)
defer ticker.Stop()
} else {
tc := make(chan time.Time)
close(tc)
ticker.C = tc
}
buf := &bytes.Buffer{}
for {