sendPrivateMessage method
Implementation
Future<void> sendPrivateMessage(
String? identity, String? name, String userMessage) async {
if (!Utils.isMessageSizeValid(userMessage)) {
sendMessageToUI("Message is too long! Please shorten it and try again.");
return;
}
// Create a message
final message = SendMessageModel(
action: MeetingActions.sendPrivateMessage,
id: const Uuid().v4(), // Generate a unique ID
message: userMessage,
timestamp: DateTime.now().millisecondsSinceEpoch, // Current timestamp
);
if (identity != null) {
List<String> participantList = [identity];
try {
// Publish the data to the LiveKit room
await room.localParticipant?.publishData(
utf8.encode(jsonEncode(message)), // Convert to bytes,
reliable: true,
destinationIdentities: participantList,
);
// Update the message list
addPrivateMessage(
RemoteActivityData(
identity: null,
id: message.id,
message: message.message,
timestamp: message.timestamp,
action: MeetingActions.sendPrivateMessage,
// Assuming no action is provided
isSender: true,
// isSender
userIdentity: identity,
userName: name),
);
} catch (e) {
if (kDebugMode) {
print('Error sending private action: $e');
}
}
}
}