parsePresenceHash function
Implementation
Map<String, PresenceMember>? parsePresenceHash(String data) {
if (!_isBoundedPresenceFrame(data)) return null;
Object? parsed;
try {
parsed = jsonDecode(data);
} on FormatException {
return null;
}
if (parsed is! Map<String, dynamic>) return null;
final presence = parsed['presence'];
if (presence is! Map<String, dynamic>) return null;
final hash = presence['hash'];
if (hash is! Map<String, dynamic>) return null;
final members = <String, PresenceMember>{};
for (final entry in hash.entries) {
final userInfo = entry.value;
members[entry.key] = PresenceMember(
userId: entry.key,
userInfo: userInfo is Map<String, dynamic> ? userInfo : const {},
);
}
return members;
}