skywind3000 / kcp

:zap: KCP - A Fast and Reliable ARQ Protocol
MIT License
15.2k stars 2.49k forks source link

请问主动丢包有解决方案了么? #385

Closed firstimes closed 1 year ago

skywind3000 commented 1 year ago

什么叫做 “主动丢包” ?KCP 自己不会丢包,哪里来的主动?

firstimes commented 1 year ago

就是之前讨论过的,在一些对实时性要求比较高的应用场景。如果发送的数据超过一定时间再发送过去已经没有意义了,所以就需要从待发送队列里面丢弃。比如在线实时通话,如果我发送一个通话请求信令给你,因为网络原因这个信令当时没有发出去,一个小时之后 kcp 重发成功了,但是你再收到这个信令已经没有意义了。

firstimes commented 1 year ago

再比如在线实时聊天,用户发一条消息给你,因为网络原因当时没有发送成功,APP 会告诉用户这条消息发送失败了,但是 kcp 却在努力重试,最后发送成功了。这就与 APP 的业务逻辑相违背了。既然已经告诉用户消息发送失败了,就不应该再发送成功。所以希望 kcp 能把这条消息丢弃掉,不要重发。

firstimes commented 1 year ago

336

我看其他的朋友也有这样的需求