首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重新连接WebRTC对等连接的正确步骤?

重新连接WebRTC对等连接的正确步骤?
EN

Stack Overflow用户
提问于 2019-04-07 19:00:06
回答 1查看 1.3K关注 0票数 2

我正在使用WebRTC和React开发一个群组语音聊天应用程序。

我已经成功地建立了连接,语音聊天在第一次连接时工作正常。

它的工作方式如下:

  1. 用户A加入聊天室。
  2. 用户B加入聊天室。
  3. 用户A通过切换按钮启用音频-这将通知信令服务器他们已为任何WebRTC打开connections.
  4. User B通过切换按钮启用音频-他们现在通过服务器与启用了音频的任何人(本例中为用户A)建立WebRTC连接过程。

到目前为止,这一切运行得很好。我的问题是在以下场景中第二次建立连接:

  1. 两个用户都启用了音频。语音通信工作正常。
  2. 用户B将其切换为禁用音频。用户A保持活动状态。
  3. 用户B再次切换音频以重新连接到用户A。

我得到以下错误:

代码语言:javascript
运行
复制
DOMException: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote answer sdp: Called in wrong state: kStable

我理解这个错误意味着连接顺序有问题。因此,我认为这可能与没有足够的断开过程有关。

因此,我实现了一个功能,当用户B禁用音频时,它会向房间中的所有其他用户发送一条消息,要求从每个用户本地状态的对等连接数组中删除该persons Peer_Connection对象。但这无济于事。

我很困惑为什么会发生这种情况,因为如果我退出聊天室并以两个用户的身份重新进入聊天室,可以再次重新建立连接,所以我认为这与旧连接的残余导致新连接出现问题有关。

(如果两个用户都启用了音频,其中一个用户禁用、离开房间、返回并启用所有音频,而第一个用户一直启用音频,则也可以工作。那么,发送报价的客户存在错误吗?)

一如既往,任何提示和帮助都将不胜感激,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-04-09 03:42:58

无法重新连接。对于任何寻求类似问题解决方案的人:

不需要重新连接,只需禁用音轨即可。在本地,这意味着没有人会从你那里获得任何音频馈送。禁用远程音轨显然会将您的音频静音。将两者都设为静音意味着没有音频输入或输出,这可以在人留在同一房间时通过切换开关模拟断开连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55558232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档