首页 > 解决方案 > Golang `pions` lib 示例问题

问题描述

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

正如它在文档中所写的那样,我打开了 jsfiddle 客户端示例

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

之后,我Browser base64 Session Description从 jsfiddle 示例中复制并将其粘贴到data-channels运行 go 脚本的终端中,它会生成Golang base64 Session Description代码,我将其粘贴到 jsfiddle 示例中,然后按下Sart session按钮。

而且它无法建立连接:(

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

在此处输入图像描述

这是我的服务器端 go 脚本:

在此处输入图像描述

我究竟做错了什么?

标签: gowebrtc

解决方案


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


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

您将不得不调试和检查不同的场景。我会尝试在您的本地 PC 上运行这些示例。如果可行,那么可以在不同的服务器之间尝试。在这里提供帮助的一个好工具是tcpdump,它可以显示 UDP 数据包是否到达。我通常使用tcpdump -i any udp and inbound


我们最近还添加了 IPv6 支持,因此可能值得从 master 那里尝试,看看是否有帮助!希望这会有所帮助,但如果您仍有问题,请随时提出更多问题。我们也可以通过我们的Slack 频道联系到您,您可以在这里注册,然后更乐意聊天!


推荐阅读