Golang`pions` lib示例问题

时间:2018-11-30 12:19:35

标签: go webrtc

我刚刚开始使用Go尝试WebRTC,并下载了pions/webrtc库,但是我坚持使用data-channels示例。

written in docs开启了jsfiddle client example

然后我正在服务器上go run main.go文件夹中运行/go/src/github.com/pions/webrtc/examples/data-channels命令以启动数据通道。

此后,我从jsfiddle示例中复制Browser base64 Session Description并将其粘贴到运行data-channels go脚本的终端中,并生成Golang base64 Session Description代码,将该代码粘贴到jsfiddle示例中,然后按{ {1}}按钮。

它无法建立连接:(

这是我在客户端的jsfiddle示例:

enter image description here

这是我的服务器端执行脚本:

enter image description here

我在做什么错了?

2 个答案:

答案 0 :(得分:1)

感谢使用pion-WebRTC(我是开发人员之一!)


WebRTC使用一种称为ICE的技术来允许对等方彼此交谈。两个对等方通过SDP(您粘贴的文本)交换IP地址,然后尝试通过相互之间发送小的UDP数据包进行通信。一旦两个IP地址通过ICE成功通信,其余的WebRTC步骤就可以继续。对于您来说,此过程将失败。我不知道为什么/为什么。防火墙,VPN等...都可能导致问题。

您将不得不调试并检查不同的情况。我会尝试在本地PC上运行示例。如果可行,则尝试在其他服务器之间尝试。 tcpdump也是一个有用的工具,它可以显示UDP数据包是否到达。我通常使用tcpdump -i any udp and inbound


我们最近还增加了对IPv6的支持,因此可能值得主手尝试一下,看看是否有帮助!希望这会有所帮助,但是如果您仍然遇到问题,请随时提出更多问题。您也可以通过Slack Channel来与我们联系,您可以在here处进行注册,我们非常乐意聊天!

答案 1 :(得分:0)

我遇到了类似的问题,并且解决了

回显$ BROWSER_SDP | ./main

BROWSER_SDP是浏览器中的会话描述,主要是通过build build main.go建立的exe(您可以通过mv重命名exe)。这样可以确保将SDP传输到服务器,这确实很重要。

The detail