broadcastLog method
Broadcasts a new log entry to all connected WebSocket clients.
Implementation
void broadcastLog(Map<String, dynamic> logEntry) {
if (!kDebugMode) return;
if (_wsClients.isEmpty) {
debugPrint('⚠️ NetworkLogWebServer: No WebSocket clients connected');
return;
}
try {
// Enhance the log entry with display information
final enhancedLog = {
...logEntry,
'displayStatus': _getDisplayStatus(logEntry),
'displayType': _getDisplayType(logEntry),
'displayMethod': _getDisplayMethod(logEntry),
};
final message = jsonEncode({
'type': 'log',
'log': enhancedLog,
'timestamp': DateTime.now().toIso8601String(),
});
for (final client in _wsClients) {
try {
client.add(message);
debugPrint('✅ NetworkLogWebServer: Broadcasted log: ${logEntry['id']}');
} catch (e) {
debugPrint('❌ NetworkLogWebServer: Failed to broadcast to client: $e');
_wsClients.remove(client);
}
}
} catch (e) {
debugPrint('❌ NetworkLogWebServer: Failed to prepare log for broadcast: $e');
}
}