You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SDP offer丢失时如何恢复AWS Kinesis WebRTC连接

核心机制说明

KVS信令通道的SDP offer采用单次投递即消费的逻辑:只要信令服务把offer推送给当前在线的master客户端、成功触发sdpOffer事件,这条offer就会从服务端队列里永久删除,不会留存、也不会重复投递。
你碰到的刷新页面后收不到旧offer的问题完全符合这个机制:master刷新页面时旧的信令连接直接断开,已经投递给旧页面实例、还没来得及生成返回answer的offer,不会再重新投递给新建立连接的master实例,看起来就像被旧会话“吞掉”了一样。

场景正确处理方式

不建议viewer端固定间隔无脑重发offer,会造成不必要的信令开销,还可能打乱两端的SDP协商状态,按以下逻辑处理就能覆盖所有异常场景:

  • master端初始化完成、信令客户端成功连接通道后,立刻通过信令通道的自定义消息能力,给同通道的viewer端发送一条约定好的重发请求消息,告知对端自己当前已就绪、可以接收offer
  • viewer端除了首次进入页面发送初始SDP offer之外,额外监听自定义消息事件,一旦收到master发来的重发请求,立刻生成最新的SDP offer发送,不需要等固定时间间隔
  • viewer端发送offer后启动10~15秒的超时计时器,如果计时结束还没收到对应SDP answer,直接判定本次offer协商失败,重新生成新offer发送即可,超时阈值可以根据自身业务的网络情况调整
  • 两端都监听WebRTC的ICE连接状态,一旦状态变为failed或者disconnected且持续10秒没有恢复,直接由viewer端触发offer重发流程,master端收到新offer后正常返回answer即可
offer丢失的判断依据

不需要依赖服务端的特殊回执,本地通过两个条件就能准确判断之前发送的offer已经丢失:

  1. 发送offer后超过预设的超时阈值,没有收到对应的SDP answer
  2. 收到对端发来的offer重发请求
    两个条件触发任意一个,直接重发新offer即可,不需要额外做复杂的状态校验。

内容的提问来源于stack exchange,提问作者fblundun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:01:41