Replies: 1 comment 2 replies
|
Short answer: Use uni-directional streams and cancel them when they're outdated and use stream priority to prioritize the most recent stream frames. See also https://moq.dev/blog/never-use-datagrams/ Longer answer: Nobody actually wants "unreliable" delivery. It's more likely that you have an application where more recent data makes older data obsolete. In that case, you'd cancel the older data once the more recent one is submitted. Or your data becomes obsolete after X milliseconds. In that case, you'd cancel streams after X milliseconds. Or you don't care about order/want the most recently submitted data to go through first. In that case, you'd add priorities to streams to ensure the most recently submitted streams have the highest priority and will be sent first.
Keep in mind that QUIC streams can also be received out of order. |
Uh oh!
There was an error while loading. Please reload this page.
I see this excerpt in the docs:
Which API should I reach for when I want to send some larger payload that is split into chunks? The order of the chunks doesn't matter, and some packet loss is expected/acceptable, so my intuition says a QUIC stream isn't quite the right thing to use because that enforces order and retransmission, where neither is necessary. Should I just use the datagram API? The docs I quoted above are a bit off-putting because I don't know why reaching for it would be misguided.
All reactions