sendPublicMessage method
Implementation
Future<void> sendPublicMessage(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.sendPublicMessage,
id: const Uuid().v4(), // Generate a unique ID
message: userMessage,
timestamp: DateTime.now().millisecondsSinceEpoch, // Current timestamp
);
// Publish the data to the LiveKit room
await room.localParticipant?.publishData(
utf8.encode(jsonEncode(message)), // Convert to bytes,
reliable: true,
);
// Update the message list
addMessage(
RemoteActivityData(
identity: null,
id: message.id,
message: message.message,
timestamp: message.timestamp,
action: MeetingActions.sendPublicMessage,
// Assuming no action is provided
isSender: true, // isSender
),
);
}