如何确保发送和接收 Twilio Video dataTrack 消息?

How can I make sure the Twilio Video dataTrack message gets sent and recieved?

我有一个简单的 twilio-video dataTrack

let dataTrack = new LocalDataTrack()
const tracks = track.concat(dataTrack)
room = await connectToRoom(roomConnectId, tracks)

....

function closeRoom() {
    dataTrack.send(JSON.stringify('disconnected'))
}

如何确保此消息已发送和已收到?我可以将它包装在一个不断尝试直到它起作用的循环中吗?我可以添加任何其他选项以使其正常工作吗?

我需要收件人 100% 收到此消息。这可能吗?

DataTrack API 使用 WebRTC 数据通道,不能 100% 保证交付。来自 configuring DataTrack reliability 上的文档:

DataTracks are intended for low-latency communication between Participants. Importantly, to optimize for lowest latency possible, delivery of DataTrack messages is not guaranteed. You can think of them more like UDP messages, rather than TCP.

但是,Twilio Video DataTrack 有一些额外的可靠性功能。

DataTrack可以设置两个参数API:

  • maxPacketLifeTime - DataTrack 传输或重新传输消息直到消息被确认的时间(以毫秒为单位)
  • maxRetransmits - 将进行的最大重传尝试次数。

Twilio Video DataTrack documentation 中查看有关使用这些参数的更多信息。