问题标签 [turn]
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.
webrtc - ICE失败的原因是什么?
ICE失败的可能原因是什么?
我对失败的情况特别感兴趣——当添加所有远程候选者(带有中继候选者)时,远程提供/应答 SDP 集。
android - WebRTCDemo apk 从 STUN/TURN 服务器获取错误地址
在http://www.webrtc.org/native-code/android之后,我构建的 WebRTCDemo apk 在我的 android 设备上运行良好,并且可以使用 Chrome 启动视频通话。问题是 1)apk 在不同的 LAN 中无法与对等方建立连接,2)但是两个 Chrome 可以成功启动 p2p 呼叫。
检查日志后,我发现 apk 给出了错误的候选传输地址。我的私人地址是 10.10.10.108,公共地址是 112.10.45.196,apk 会向房间服务器发送以下传输地址:
所以奇怪的是apk在哪里学习了这些两个地址:
使用 WireShark 嗅探流量后,我没有发现任何线索,TURN/STURN 服务器以正确的值响应。
所以有人知道为什么吗?
objective-c - Twilio - STUN / TURN URL
我想在我的 iOS 应用程序中对 Twilio STUN/TURN 进行测试,目前正在使用另一个框架进行 WebRTC 视频连接。
以下是我在框架中使用的 STUN / TURN 设置。我查看了 Twilio 文档,但似乎找不到连接所需的 URL,或者在我的情况下我将使用哪些登录凭据来部署他们的服务,如下所示:
有 Twilio STUN/TURN 经验的人知道我在哪里可以找到这些信息吗?
jquery - XirSys $.ajax() 方法返回状态 400,错误:无法验证应用程序
我正在按照 Sam Dutton 教程开发自己的 webRTC 应用程序,我正在使用 xirSys 为我的点对点视频提供 TURN 服务器。但是$.ajax()
方法没有像我预期的那样返回凭据、用户名、url。我也尝试使用dataType: JSONP
. 从 firebug 调试时返回的响应是:
{"p":"/getIceServers","s":400,"d":null,"e":"无法验证应用程序"}
无论如何,我可以获取我的url,username,credential作为JSON并直接在我的应用程序中使用它们而不会出现任何错误,因为即使 url 命中的状态是 200 有时在$.ajax()
调用时仍然存在语法错误?
webrtc - 关于通过 REST api 进行 TURN 服务器身份验证的说明
我正在阅读这份草案以了解使用 REST api 访问 TURN 服务。经历过之后我有点困惑。
目前,我正在使用带有Redis数据库的长期凭证机制对我的 TURN 服务器进行身份验证,但我没有使用实际的用户名和密码,而是使用身份验证令牌(在 8 小时内到期)和随机字符串作为密码。
我对草案的怀疑是:
- 响应中
ttl
收到的从未使用过(至少不是其中的一部分RTCPeerConnection
)。那么 TURN 究竟是如何知道用户何时到期的呢? - 我在参数中看不到
turnserver
指定时间戳格式的选项,ss 它是固定的 UNIX 时间戳吗? - REST api 实现是否比我的实现有任何优势(考虑到矿井不依赖于 webrtc 服务器和 TURN 服务器时间之间的同步这一事实)
javascript - 使用 REST API 身份验证的 WebRTC TURN 服务器
我正在尝试从此处为 webRTC 设置 rfc5766-turn-server TURN 服务器。turnuserdb.conf
我能够使用包含我的用户名和密码 (my_user_name:my_password)的文件通过此 TURN 服务器成功转发我的视频。在网络客户端我使用:
我正在尝试使用 TURN 服务器附带的 REST API 功能来避免通过网络发送密码或将其存储在客户端。我在 Rest API 下遵循了这个规范 和这个解释
但是不幸的是,我得到了401,我无法进行身份验证。
这就是我所做的:
我创建了一个秘密“my_secret”,然后像这样运行转向服务器:
(我只是用 替换了 IP 地址
xx.xxx.xx.xx
yy.yyy.yyy.yy
zz.zzz.zz.zzz
)后来我生成了一个现在 + 1 小时的时间戳,所以我在 nodejs 上运行:
我在这个网站上生成了临时密码,使用我的秘密,得到了结果
0ca57806bdc696b3129d4cad83746945b00af77b
我将密码编码为base64。
现在我尝试使用临时用户名:
1433895918506:my_user_name
和密码:从 Web 客户端登录与转服务器的通信,MGNhNTc4MDZiZGM2OTZiMzEyOWQ0Y2FkODM3NDY5NDViMDBhZjc3Yg==
现在我在 Web 客户端上使用
但它不起作用,我得到:
你能帮我找出问题所在吗?
tcp - WebRTC 通信仅使用 HTTP 端口 80?
- 当对等点位于不同的 NAT 后面时,我们使用 STUN 来让事情顺利进行
- 当直接点对点失败时,我们转向TURN服务器,
- 当系统中所有 UDP 端口都被阻塞时,我们使用 TCP 传输连接到 TURN 服务器
- 但是如果除 80 之外的所有端口都被阻止(公司代理后面的对等),那会怎样?上面的 TURN 服务器还能用吗?还是我应该获得一个 webrtc 网关并依赖 RTMP 作为后备?还有其他选择吗?
以前,我错误地假设 TCP 只需要 80 端口,但这个讨论让我怀疑事情。
webrtc - 如何连接到 XirSys 的信令服务器而不是 Priologic
我正在使用 EasyRTC 开发视频聊天应用程序。ICE 配置按照 XirSys 网站上的指南进行设置:
它工作正常,我可以运行 EasyRTC 演示,但 XirSys 控制台中没有 STUN/TURN 命中。我怀疑这是因为该应用程序仍在使用 Priologic 的公共信号服务器。
XirSys 网站上的文档提到了如何更改信令服务器的“后续教程”,但我找不到任何内容。
有人知道怎么做吗?
谢谢。
更新 迁移到新平台版本并更改上述请求后,问题似乎仍然存在:
amazon-web-services - 如何使用 AWS EC2 创建 stun turn 服务器实例
实际上,我想使用我自己的 stun/Turn 服务器实例,并且我想使用 Amazon EC2。如果有人对此有任何想法,请与我分享创建步骤或任何要遵循的参考链接。
webrtc - ICE 协议的基础是什么?
在 ICE 协议中,什么是 Base?
我将 Base 理解为,对于服务器反身候选人,主机候选人是基础,它是否正确?
如何找到候选人的基础?