Skip to content

服务端重启后链路无法恢复 #439

Description

@lvyangdev
  • 因为服务端重启,重启后收到数据通过ikcp_parse_dataif (seg->sn == kcp->rcv_nxt && kcp->nrcv_que < kcp->rcv_wnd)判断入队列,此时conv一致,可惜的是seg->sn是之前递增的值,kcp->rcv_nxt将始终为0. 导致数据未入rcv_queue相当于未真正“接收”,因为ikcp_recv中的 if (iqueue_is_empty(&kcp->rcv_queue)) return -1;

  • 那么此时同步sn只能在客户端新建kcp对象吗?这个意思是否只能是业务层通过类似心跳的机制判断此时的服务器数据未真正接收(网卡收到了但是业务层未收到),然后重连?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions