Summary
Update the realtime kline collector to use Binance's new market-data WebSocket endpoint. The legacy wss://fstream.binance.com/stream URL was permanently decommissioned by Binance on 2026-04-23 (Important WebSocket Change Notice). After the deadline, connections to the legacy URL still complete the WebSocket handshake but the server silently withholds all kline_* push frames, causing realtime updates to stop while historical REST sync still works.
What changed
backend/src/binance_collector.rs:307— switched the combined-stream URL from
wss://fstream.binance.com/stream?streams=...
to
wss://fstream.binance.com/market/stream?streams=...
kline_* streams now belong to the /market routing class per Binance's new endpoint structure (/public, /market, /private). Combined-stream syntax (?streams=a@kline_1m/b@kline_1m) is unchanged.
Symptoms this fixes
- Frontend chart stops receiving realtime candle updates after backend restart.
- Watchlist
lastprice stuck at0.00. - Backend logs show
WS 0 connected with 17 symbolsbut no further collector activity (no errors, no reconnects). - DB only contains candles from the REST API historical sync — no realtime closed candles after the connect.
Verification
After deploying v1.1, the latest closed candle in the DB advances every minute in lockstep with wall-clock UTC, and the frontend chart and watchlist resume realtime updates.
Container image
ghcr.io/exchanges-lab/view/backend:v1.1(digestsha256:927c727961510de28190712cdcdf32dc1800e954444eacd1c28773d7df9b5ac6)ghcr.io/exchanges-lab/view/backend:latestpoints to the same digest- Previous stable:
v1.0(digestsha256:1c25c0057f85ae97e9488d20c70c975a8fc5bb3083ad73a32c77a9878197966b) retained as a rollback point