mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-05 12:44:22 +00:00
The inbounds page and Nodes page checked each client's email against a single deduped union of every node's online clients, so a client connected to one node showed as online on every inbound across every node. The local online set was also derived from the email-keyed client_traffics.last_online column, which remote-node syncs bump too, leaking remote-only clients onto local inbounds. Track online clients per node: the local panel's own xray clients under key 0 (derived from live traffic-poll deltas via RefreshLocalOnline, kept in memory and independent of the shared last_online column) and each remote node under its id. Add GetOnlineClientsByNode plus a /clients/onlinesByNode endpoint and onlineByNode WS field; node.go and the inbounds rollup now scope online by node. The flat GetOnlineClients union is kept for client-centric and total-count views (Clients page, dashboard, telegram). Closes #4809 |
||
|---|---|---|
| .. | ||
| check_client_ip_job.go | ||
| check_client_ip_job_integration_test.go | ||
| check_client_ip_job_test.go | ||
| check_cpu_usage.go | ||
| check_hash_storage.go | ||
| check_hash_storage_test.go | ||
| check_xray_running_job.go | ||
| clear_logs_job.go | ||
| ldap_sync_job.go | ||
| node_heartbeat_job.go | ||
| node_traffic_sync_job.go | ||
| node_traffic_sync_job_test.go | ||
| periodic_traffic_reset_job.go | ||
| stats_notify_job.go | ||
| xray_traffic_job.go | ||