logDisconnectEvent static method
Future<void>
logDisconnectEvent(
{ - required String meetingId,
- required Room room,
- required String? reason,
})
Implementation
static Future<void> logDisconnectEvent({
required String meetingId,
required Room room,
required String? reason,
}) async {
final local = room.localParticipant;
Map<String, dynamic> metadataJson = {};
try {
if (local?.metadata != null) {
metadataJson = Map<String, dynamic>.from(
jsonDecode(local!.metadata!),
);
}
} catch (_) {
// Ignore metadata parsing errors
}
final attributes = <String, Object?>{
'meetingId': meetingId,
'disconnectReason': _formatDisconnectReason(reason),
'participant': {
'name': local?.name,
'identity': local?.identity,
'metadata': local?.metadata,
'role': metadataJson['role_name'],
'meetingAttendanceId': metadataJson['meeting_attendance_id'],
'connectionQuality': local?.connectionQuality.name,
'isSpeaking': local?.isSpeaking,
'platform': defaultTargetPlatform.name,
'userAgent': await DeviceNetworkInfo.getDeviceDetails(),
'network': await DeviceNetworkInfo.getNetworkType()
}
};
DaakiaVcDatadogService.logInfo(
'DISCONNECT REASON: ${_formatDisconnectReason(reason)}',
attributes: attributes,
);
}