sendPublicMessage method

Future<void> sendPublicMessage(
  1. String userMessage
)

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
    ),
  );
}