tryParse static method
Attempts to parse raw (a JSON string, UTF-8 byte list, or Map) into a RealtimeMessage.
Returns null if parsing fails, malformed JSON is encountered, or an exception is thrown.
final message = RealtimeMessage.tryParse(incomingData);
Implementation
static RealtimeMessage? tryParse(dynamic raw) {
try {
if (raw is String) {
final decoded = jsonDecode(raw);
if (decoded is Map<String, dynamic>) return RealtimeMessage.fromJson(decoded);
if (decoded is Map) return RealtimeMessage.fromJson(Map<String, dynamic>.from(decoded));
} else if (raw is List<int>) {
final decoded = jsonDecode(utf8.decode(raw));
if (decoded is Map<String, dynamic>) return RealtimeMessage.fromJson(decoded);
if (decoded is Map) return RealtimeMessage.fromJson(Map<String, dynamic>.from(decoded));
} else if (raw is Map<String, dynamic>) {
return RealtimeMessage.fromJson(raw);
} else if (raw is Map) {
return RealtimeMessage.fromJson(Map<String, dynamic>.from(raw));
}
} catch (_) {
// Invalid JSON or format
}
return null;
}