go - 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 脚本:
我究竟做错了什么?
解决方案
感谢您使用 pion-WebRTC(我是开发人员之一!)
WebRTC 使用一种称为 ICE 的技术来允许对等方相互交谈。两个对等方通过 SDP(您粘贴的文本)交换 IP 地址,然后他们尝试通过在彼此之间发送小型 UDP 数据包进行通信。一旦两个 IP 地址通过 ICE 成功通信,其余的 WebRTC 步骤就可以继续。对你来说,这个过程失败了。我不知道如何/为什么。防火墙、VPN 等……都可能导致问题。
您将不得不调试和检查不同的场景。我会尝试在您的本地 PC 上运行这些示例。如果可行,那么可以在不同的服务器之间尝试。在这里提供帮助的一个好工具是tcpdump
,它可以显示 UDP 数据包是否到达。我通常使用tcpdump -i any udp and inbound
我们最近还添加了 IPv6 支持,因此可能值得从 master 那里尝试,看看是否有帮助!希望这会有所帮助,但如果您仍有问题,请随时提出更多问题。我们也可以通过我们的Slack 频道联系到您,您可以在这里注册,然后更乐意聊天!
推荐阅读
- python - TensorFlow 2.0 SparseCategoricalCrossentropy valueError:形状不匹配:标签的形状应该等于 logits 的形状,除了最后一个
- c++ - 对于此类问题,什么是好的贪婪 2D 矩阵排序算法?
- python - 有没有一种简单的方法可以在 Airflow 中跳过整个 DAG 运行但仍允许未来运行?
- typescript - TypeScript 从其参数类型映射函数的返回类型
- angular - Angular/Typescript 在编译时删除未使用的代码
- swift5 - 在真实设备上查看屏幕错位
- javascript - 我正在创建一个 DOM 元素数组并选择一个 img 标签,然后是一系列 p 标签,如何从 img 获取 p 和 src 链接的 innerHTML?
- python-3.x - Python3 asyncio产生新线程时线程中没有当前事件循环
- c# - 转换列表
到字符串 C# - asp.net - sql server - - python - pandas:数据帧逐行比较