gpt4 book ai didi

javascript - iceConnectionState 已断开连接 - VP9 编码为空 - PeerServer

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:26 25 4
gpt4 key购买 nike

我有一个应用程序正在使用 PeerJS用于视频流,我使用的是基于节点的 Peer Server通过 HTTPS(服务器上安装的 SSL 证书)在 Ubuntu 服务器实例上运行。

这就是我实例化 PeerServer 的方式:

var server = PeerServer({
port:55127,
path:'/',
debug:true,
ssl:{
key: fs.readFileSync('/etc/apache2/ssl/mykey.key'),
cert: fs.readFileSync('/etc/apache2/ssl/mycert.crt')
}
});

这就是我创建对等连接的方式:

var peer = new Peer('peerHost',{host: 'myhost.com', port: 55127, path: '/'})

关于端口,我在 UFW 和路由器中都允许使用 55127。

由于某些奇怪的原因,我的对等连接和视频流在 LAN 中运行良好,但在 Internet 上却失败了——尽管有时它们可​​以运行,例如在 3G 移动网络上。

在调试 Peer 连接时,我偶然发现了这些“错误”:

PeerJS: VP9 Codec: null    
PeerJS: iceConnectionState is disconnected, closing connections to (...)

服务器端没有错误,所有这些要么在主机上,要么在客户端上。

这个问题类似于this , thisthis .

有没有人知道可能出了什么问题以及如何解决?

提前致谢。

最佳答案

好吧,看来我得了this问题,在任何家用路由器中,一个非常常见的 NAT/防火墙场景会阻止我的 PeerJS 服务器需要访问的端口,从而抑制代理连接,并且不允许流式传输视频。

解决方案是使用中间 TURN 服务器来覆盖 NAT 设置。

var peer = new Peer({host: 'host.com', port: 55127, path: '/', debug:true, config: {'iceServers': [{ url: 'stun:stun.l.google.com:19302' },{ url: 'turn:numb.viagenie.ca', username: 'username@gmail.com', credential: 'password' }]}});

关于javascript - iceConnectionState 已断开连接 - VP9 编码为空 - PeerServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40595837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com