c - STUN 连接未完成

标签 c browser webrtc stun

我正在编写一个 RTP 中继,但遇到了一个问题。

基于libnice threaded example我编写了软件部分 使用 STUN 连接到在 chrome 中运行的 javascript。

基本上这就是我的软件方面发生的事情:

等待状态 READY 或 FAILED 信号... 信号:状态改变 1 1 已连接[3] 状态现在已连接 信号:状态改变 1 1 就绪 [4] 状态现在准备就绪

cleary libnice 正在触发我的回调,说明连接是 牢固树立

wireshark 正在显示绑定(bind)指示包

但是那是个绊脚石

这是 webrtc 内部来自 chrome 的日志:

Time    Event
29/10/2018, 19:59:11    setRemoteDescription
29/10/2018, 19:59:11    signalingstatechange
29/10/2018, 19:59:11    receiverAdded
29/10/2018, 19:59:11    setRemoteDescriptionOnSuccess
29/10/2018, 19:59:11    createAnswer
29/10/2018, 19:59:11    createAnswerOnSuccess
29/10/2018, 19:59:11    setLocalDescription
29/10/2018, 19:59:11    iceconnectionstatechange
29/10/2018, 19:59:11    signalingstatechange
29/10/2018, 19:59:11    setLocalDescriptionOnSuccess
29/10/2018, 19:59:11    icegatheringstatechange
29/10/2018, 19:59:11    icecandidate (host)
29/10/2018, 19:59:11    icegatheringstatechange

永远不会触发具有牢固连接的 iceconnectionstatechange。 这意味着 chrome 之后从未检测到已建立的连接 最后一滴,而我的程序。

在 chrome 中触发的最后一个 iceconnectionstatechange 是“正在检查”

我该如何调试它???

非常感谢任何帮助

谢谢

/帕特里克

最佳答案

您可能需要 stun consent它使用绑定(bind)请求/响应而不是绑定(bind)指示。还可以尝试通过向 SDP 添加 a=ice-lite 来将您的对等体声明为精简版实现。

关于c - STUN 连接未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53089180/

相关文章:

c - f 打开文件并跳过字符

c++ - **运算符不适用于二维数组作为参数

c - C 中的简洁动态内存分配

javascript - 在构造函数中创建一个函数会比引用原型(prototype)函数使用更多的内存吗?

ios - 如何在移动浏览器中录制音频?

ruby-on-rails - rails 5 : WebRTC video conferencing

无法在 C 代码中模仿 `echo` 命令的 Action

browser - 服务器向客户端浏览器发送推送通知而不使用轮询

http - 哪些浏览器发送 expect : 100-continue header?

javascript - 在 webRTC 中使用电子邮件发送信号