问题标签 [signaling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
80 浏览

webrtc - WebRCT客户端和SFU之间的信令

如果客户端 A 想要连接到另外 2 个端点 B 和 C。A 如何使用 SFU 与 B 和 C 发起呼叫。我的意思是,A 将如何与需要连接到 B 和 C 的 SFU 通信?ICE 在此设置中如何工作?

0 投票
1 回答
125 浏览

javascript - 我可以将 webRTC Peer Connection 对象重新用于多用户聊天吗?

我已经用于WebRTC我的聊天应用程序。我的想法是,只要有任何用户加入聊天应用程序,RTCPeerConnection就会创建一个新对象。聊天室将只允许one-to-one communication

示例:假设User1,User2User3加入了应用程序。如果user1想与之聊天,user2则将在这些用户之间创建一个房间。

这里user1RTCPeerConnection并且user2有它自己的RTCPeerConnection。接下来webRTC negotiation(交换要约、回答和 ICE)将通过信令在它们之间发生。数据可以通过 RTC 数据通道共享。

如果user1要连接user3,则user1必须离开之前的房间并与之进行 webRTC 协商user3(意味着之前的房间删除和新的房间必须创建)。

现在我的问题是

假设user1然后user2正在做 webRTC 通信

用户 1 RTCPeerConnection.signalingstatechange = have-local-offer

用户 2 RTCPeerConnection.signalingstatechange = have-remote-offer

之后我关闭了连接(意味着删除了房间)。接下来user1要连接user3

在这种情况下,我可以重新使用 User1RTCPeerConnection来创建新的报价user3吗?

如果是,在删除以前的连接期间我必须注意哪些事项?因为前一个signalingstatechangehave-local-offerand have-remote-offer。有什么帮助或建议吗?

0 投票
1 回答
61 浏览

python - 如何在python中更准确地找到局部最大值(最小值)?

我想知道当使用 Scipy api(如下面的代码)来查找局部最大值和局部最小值时,结果(如附图)似乎并不像想象的那样准确。有没有什么技巧或方法可以提高准确率?

在此处输入图像描述

如果您有任何想法,请给我评论,这将对我有很大帮助。非常感谢。:))

0 投票
0 回答
31 浏览

webrtc - WebRTC 连接g 只发送一个候选人

我是 Javascript 的新编码。我正在我的 iPhone 和浏览器之间创建一个 WebRTC 连接。连接有效,但我的代码只发送一个候选人,我不知道我是否做错了什么。我将不胜感激任何评论或支持。

谢谢

0 投票
0 回答
69 浏览

webrtc - CodenameOne WebRTC CN1LIB 无服务器,手动信令

我正在尝试使用 PeerConnectionStates Demo 通过手动复制信令字符串来分解 webrtc 信令的过程,就像在 Youtube 中一样:https ://www.youtube.com/watch?v=YLPRBYTeoF4&t=1594s 。Github:https ://github.com/chrisuehlinger/serverless-webrtc (从 25:00 开始)如果成功,我将能够解决来自 Pubnub、Firebase 或我可能选择的任何其他信号解决方案的任何信号问题。

我有“开始”、“呼叫”、“交换”和“挂起”按钮。

“交换”按钮显示一个交互式对话框,其中包含复制报价、粘贴报价、设置报价、复制答案、粘贴答案、设置答案按钮。还有“从文本文件复制报价 2”和“从文本文件复制答案 2”。

如果按该顺序单击第一组 Dialog 按钮(不包括最后 2 个文件选择按钮),您将完成原始演示中的协商。

但我希望它在 2 个设备之间,所以我将设备 A 的报价字符串放入一个文本文件中,并使用从文本文件中复制报价 2 粘贴到设备 B 的文本字段中,然后单击“设置报价”以生成一个答案我复制到一个文本文件并使用从文本文件中复制答案 2 发送到设备 A。

我无法将手指放在我所缺少的东西上。任何帮助表示赞赏。

从电话发起呼叫 - 作为设备 A 到模拟器

在设备 A - 我的手机上

PC1 状态:nullHaveLocalOfferStable PC1 ICE 状态:新 PC1 连接状态:

PC2 状态:nullHaveRemoteOffer PC2 ICE 状态:新 PC2 连接状态:

在设备 B - PC 模拟器上

PC1 状态:nullHaveLocalOfferStable PC1 ICE 状态:NewCheckingConnected PC1 连接状态:Connecting

PC2 状态:nullHaveRemoteOfferStable PC2 ICE 状态:NewChecking PC2 连接状态:Connecting

有错误信息:java.lang.RuntimeException: Failed to execute 'addIceCandidate' on 'RTCPeerConnection': Error processing ICE Candidate

但控制台上的最后 3 行是 [EDT] 0:20:48,103 - pc2 addIceCandidate success [EDT] 0:20:48,103 - pc2 ICE Candidate: Candidate:1503035259 1 udp 7935 154.127.57.220 50066 typ relay raddr 129.205.113.2 rport 6591 第 0 代 ufrag lXG+ 网络成本 999

我的步骤是:从 A

  1. 开始按钮
  2. 呼叫按钮 - 创建报价
  3. 从 toffer1 复制报价(使用交换按钮)
  4. 粘贴到 toffer2
  5. 设置报价按钮

在 B 上 6. 开始按钮 7. 呼叫按钮 8. 将 A 的提议粘贴到 TextArea toffer1 和 toffer2(使用交换按钮) 9. 设置提议按钮 10. 从 tAnswer1 复制答案 11. 将答案粘贴到 tAnswer2

在一个

  1. 在 tAnswer1 和 tAnswer2 上粘贴答案
  2. 设置应答按钮

在 B 14. 设置应答按钮

0 投票
1 回答
43 浏览

p2p - 在 P2P 网络中使用 dht 可以代替信令服务器的使用吗?

在学习 p2p 网络时,我发现 P2P 网络需要信令服务器,但现代 DHT 能否取代对信令服务器的需求?(以打孔为主)

0 投票
0 回答
53 浏览

webrtc - Webrtc 连接错误

我创建了 webrtc 视频聊天应用程序,但是当我想连接对等方时,有时连接会正确建立,但有时会抛出错误。这是不同错误的列表。有人能帮我吗。什么是不正确的。

错误错误:未捕获(承诺中):OperationError:无法在'RTCPeerConnection'上执行'setLocalDescription':无法设置本地答案sdp:在错误状态下调用:稳定错误:无法在'RTCPeerConnection'上执行'setLocalDescription':无法设置本地答案 sdp:在错误状态下调用:稳定

DOMException:无法在“RTCPeerConnection”上执行“setRemoteDescription”:无法设置远程应答 sdp:在错误状态下调用:稳定

错误错误:未捕获(承诺中):InvalidModificationError:无法在“RTCPeerConnection”上执行“setLocalDescription”:SDP 与先前为该类型生成的 SDP 不匹配错误:无法在“RTCPeerConnection”上执行“setLocalDescription”:SDP 确实与之前为该类型生成的 SDP 不匹配

DOMException:处理 ICE 候选时出错

这是我的代码:

0 投票
0 回答
25 浏览

node.js - NodeJS 服务器作为 WebRTC 信令服务器,同时是没有 Websockets 的数据通道对等点?

我在我的服务器上安装了 NodeJS。在我从浏览器发出 GET 请求(例如“/datachannel_with_myserver”)之后,我希望我的服务器充当 WebRTC 信令服务器并同时成为对等点。

如何在不使用 WebSockets 的情况下做到这一点?我必须安装哪些软件包?