MHSanaei
2ce5891f5f
feat(nodes): show live speed for node-hosted inbounds
...
Inbound speed is computed on the dashboard from a 'traffics' delta feed, which only the local Xray poll produced — so node-hosted inbounds showed no speed. The node sync now diffs successive per-inbound cumulative totals (it polls @5s, same as the local poll) and broadcasts the byte deltas as a separate 'nodeTraffics' field, keyed by the central tag the dashboard already matches. The frontend applies 'traffics' to local inbounds and 'nodeTraffics' to node inbounds within their own scope, so the two 5s polls don't clobber each other and idle inbounds still clear. Deltas clamp to 0 on a reset; a node that fails to sync keeps a stale total so its delta is 0 (no phantom speed).
2026-06-22 18:03:10 +02:00
..
2026-06-22 16:41:28 +02:00
2026-06-17 17:24:16 +02:00
2026-06-13 11:48:02 +02:00
2026-06-10 15:19:22 +02:00
2026-06-22 02:48:58 +02:00
2026-06-20 10:35:46 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-12 01:22:15 +02:00
2026-06-20 10:35:46 +02:00
2026-06-17 15:55:56 +02:00
2026-06-10 15:19:22 +02:00
2026-06-14 20:57:14 +02:00
2026-06-11 12:04:02 +02:00
2026-06-17 15:55:56 +02:00
2026-06-12 15:30:41 +02:00
2026-06-20 10:35:46 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-11 15:14:08 +02:00
2026-06-10 15:19:22 +02:00
2026-06-21 23:06:10 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-22 00:22:28 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 23:01:33 +02:00
2026-06-10 15:19:22 +02:00
2026-06-22 00:22:28 +02:00
2026-06-17 12:06:55 +02:00
2026-06-17 12:06:55 +02:00
2026-06-20 10:35:46 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-11 14:05:02 +02:00
2026-06-22 00:22:28 +02:00
2026-06-12 13:00:04 +02:00
2026-06-15 15:17:03 +02:00
2026-06-15 15:17:03 +02:00
2026-06-12 17:58:45 +02:00
2026-06-22 15:08:02 +02:00
2026-06-22 15:08:02 +02:00
2026-06-14 23:10:52 +02:00
2026-06-22 18:03:10 +02:00
2026-06-11 12:04:02 +02:00
2026-06-11 12:04:02 +02:00
2026-06-12 12:03:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-11 15:14:08 +02:00
2026-06-22 00:22:28 +02:00
2026-06-11 20:24:15 +02:00
2026-06-12 12:03:22 +02:00
2026-06-21 02:34:57 +02:00
2026-06-21 17:29:22 +02:00
2026-06-20 10:35:46 +02:00
2026-06-15 15:46:19 +02:00
2026-06-22 00:22:28 +02:00
2026-06-20 01:09:53 +02:00
2026-06-21 17:27:53 +02:00
2026-06-16 12:19:33 +02:00
2026-06-16 12:19:33 +02:00
2026-06-16 12:19:33 +02:00
2026-06-22 16:32:33 +02:00
2026-06-22 15:08:02 +02:00
2026-06-10 15:19:22 +02:00
2026-06-11 20:48:26 +02:00
2026-06-10 15:19:22 +02:00
2026-06-22 17:26:55 +02:00
2026-06-22 17:26:55 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-15 17:21:06 +02:00
2026-06-15 17:21:06 +02:00
2026-06-20 10:35:46 +02:00
2026-06-10 15:19:22 +02:00
2026-06-20 00:37:35 +02:00
2026-06-21 19:51:18 +02:00
2026-06-16 12:19:33 +02:00
2026-06-16 12:19:33 +02:00
2026-06-15 21:03:41 +02:00
2026-06-21 17:45:33 +02:00
2026-06-17 14:11:35 +02:00
2026-06-10 15:19:22 +02:00
2026-06-20 10:35:46 +02:00
2026-06-10 15:19:22 +02:00
2026-06-17 15:55:47 +02:00
2026-06-10 15:19:22 +02:00
2026-06-12 17:58:45 +02:00
2026-06-15 21:03:41 +02:00
2026-06-20 01:18:31 +02:00
2026-06-20 01:18:31 +02:00
2026-06-10 15:19:22 +02:00
2026-06-17 17:24:16 +02:00
2026-06-15 00:43:49 +02:00
2026-06-15 00:43:49 +02:00