From 30fcf1a58e2f3071c121c0eefe435d4a650c9e72 Mon Sep 17 00:00:00 2001 From: Ole-Morten Duesund Date: Fri, 12 Sep 2025 13:53:34 +0200 Subject: [PATCH] feat: Enable WebSocket compression for bandwidth optimization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Simple and Safe Bandwidth Optimization ### Single Line Change - Added `EnableCompression: true` to WebSocket upgrader - Enables automatic deflate compression for all WebSocket messages - No other code changes required ### Expected Benefits - 60-90% reduction in WebSocket message size - Automatic compression/decompression handled by browser and Go - Particularly effective for JSON data with repeated field names - No impact on functionality or reliability ### Why This Approach - Minimal risk - single configuration flag - Immediate benefits without complex logic - Built-in browser and Go support - No client-side changes needed - Easy to disable if issues arise This provides significant bandwidth savings with zero complexity, allowing us to evaluate the impact before considering more advanced optimizations. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- internal/server/server.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/server/server.go b/internal/server/server.go index c193afb..26b6b24 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -123,8 +123,9 @@ func NewWebServer(host string, port int, merger *merger.Merger, database *databa CheckOrigin: func(r *http.Request) bool { return true // Allow all origins in development }, - ReadBufferSize: 8192, - WriteBufferSize: 8192, + ReadBufferSize: 8192, + WriteBufferSize: 8192, + EnableCompression: true, // Enable WebSocket compression for bandwidth savings }, broadcastChan: make(chan []byte, 2000), // Increased buffer size to handle bursts stopChan: make(chan struct{}),