wooden-librarian-60399
08/11/2025, 7:07 AMtall-airline-16756
08/11/2025, 7:07 AMtall-airline-16756
08/11/2025, 7:08 AMSendDataRequest
with kind=DataPacketKind.KIND_RELIABLE
, it’s built to be super reliable, with features like in-order delivery and automatic retries if a packet gets lost. That said, it’s important to know it can’t promise 100% delivery because things like network hiccups, client disconnections, and buffer limits can sometimes get in the way.
We don’t have exact failure rate percentages to share since reliability really depends on factors like your network’s stability and how everything’s set up. While the protocol does its best with strong retry mechanisms, it works on a “best-effort” basis and might occasionally stumble, especially in tricky situations like long disconnections.
Sources: Data packets | LiveKit Docs | Tests/LiveKitTests/DataStream/DataChannelTests.swift | src/room/RTCEngine.tswooden-librarian-60399
08/11/2025, 7:13 AMtall-airline-16756
08/11/2025, 7:13 AMperformRpc
method on the LocalParticipant
to send a request to another participant. Here’s a Swift example:
let response = try await localParticipant.performRpc(
destinationIdentity: anotherAgentIdentity,
method: "confirmReceipt",
payload: "Data received",
responseTimeout: 10
)
1. Send an Acknowledgment: The person receiving the request can send back an acknowledgment using the publishRpcAck
method. Here’s how you’d do it in Android:
localParticipant.publishRpcAck(
destinationIdentity = senderIdentity,
requestId = requestId
)
1. Handle the Acknowledgment: Don’t forget to set up handlers to process incoming acknowledgments. Here’s an example in Flutter:
void handleIncomingRpcAck(String requestId) {
// Handle the acknowledgment
}
Using this approach helps keep communication smooth and reliable between agents in LiveKit. If you have any questions or need a hand with this, just let me know!wooden-librarian-60399
08/11/2025, 3:52 PMtall-airline-16756
08/11/2025, 3:52 PM