From 4800f8fb706a092a38255ee70904227238b2a6f6 Mon Sep 17 00:00:00 2001 From: lolka1333 Date: Mon, 5 Jan 2026 05:50:40 +0100 Subject: feat: Real-time Outbound Traffic, UI Improvements & Fix (#3629) * Refactor HTML and JavaScript for improved UI and functionality - Cleaned up JavaScript methods in subscription.js for better readability. - Updated inbounds.html to clarify traffic update handling and removed unnecessary comments. - Enhanced xray.html by correcting casing in routingDomainStrategies. - Added mobile touch scrolling styles in page.html for better tab navigation on small screens. - Streamlined vless.html by removing redundant line breaks and improving form layout. - Refined subscription subpage.html for better structure and user experience. - Adjusted outbounds.html to improve button visibility and functionality. - Updated xray_traffic_job.go to ensure accurate traffic updates and real-time UI refresh. * Refactor client traffic handling in InboundService - Updated addClientTraffic method to initialize onlineClients as an empty slice instead of nil. - Improved clarity and consistency in handling empty onlineUsers scenario. * Add WebSocket support for outbounds traffic updates - Implemented WebSocket connection in xray.html to handle real-time updates for outbounds traffic. - Enhanced xray_traffic_job.go to retrieve and broadcast outbounds traffic updates. - Introduced MessageTypeOutbounds in hub.go for managing outbounds messages. - Added BroadcastOutbounds function in notifier.go to facilitate broadcasting outbounds updates to connected clients. --------- Co-authored-by: lolka1333 --- web/websocket/notifier.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'web/websocket/notifier.go') diff --git a/web/websocket/notifier.go b/web/websocket/notifier.go index cedf56f2..416adaff 100644 --- a/web/websocket/notifier.go +++ b/web/websocket/notifier.go @@ -48,6 +48,14 @@ func BroadcastInbounds(inbounds interface{}) { } } +// BroadcastOutbounds broadcasts outbounds list update to all connected clients +func BroadcastOutbounds(outbounds interface{}) { + hub := GetHub() + if hub != nil { + hub.Broadcast(MessageTypeOutbounds, outbounds) + } +} + // BroadcastNotification broadcasts a system notification to all connected clients func BroadcastNotification(title, message, level string) { hub := GetHub() -- cgit v1.2.3