Webrtc在主机上不工作

Webrtc在主机上不工作,webrtc,Webrtc,我有一个应用程序,有视频和声音通信。 我使用Webrtc创建连接,如下代码所示 foundedPC.createOffer(function(desc) { foundedPC.setLocalDescription(desc, function() { console.log("Create offer" + callId); hub.invoke("sendSignal", JSON.stringify({ "sdp": fou

我有一个应用程序,有视频和声音通信。 我使用Webrtc创建连接,如下代码所示

foundedPC.createOffer(function(desc) {
    foundedPC.setLocalDescription(desc, function() {
        console.log("Create offer" + callId);
        hub.invoke("sendSignal", JSON.stringify({
            "sdp": foundedPC.localDescription
        }), callId);
    });
}, function(error) {
    console.log('Error creating session description: ' + error);
});
然后我创建了答案并返回了答案包 evrey thing在本地系统上工作,我租了一台眩晕服务器,因为我在这个链接中找到了答案。他说问题是眩晕和翻转服务器。 但这对我不起作用。 无论何时我打开VPN,我的客户机也打开VPN,Webrtc都能很好地工作。
我不知道vpn对webrtc连接的影响可能不够,您可能还需要使用TURN

免费服务器很好,但它们并不能满足WebRTC的需要——没有人将其TURN服务器公开给其他人使用,因为这需要更详细的解释


您需要安装并运行自己的TURN服务器,或使用第三方服务,如或。

我敢肯定问题仍然是缺少TURN服务器。我猜访问租用的STUN/TURN服务器的配置不正确

也许尝试一些不同的东西,也是一个非常便宜的选择,我使用Digital Ocean并在Ubuntu droplet上安装了CoTurn作为我的STUN/TURN服务器。你每小时只需支付0.007美元。如果你不再使用它了,我现在就用它来测试,你只需要破坏水滴,你就不用再付钱了。如果对液滴进行快照,则可以在再次使用时轻松重新安装液滴。快照成本为每月0.05美元/GB

在Ubuntu机器上安装CoTurn非常简单:

创建水滴时,选择Ubuntu 16.04.3 x64或17.10 x64

安装:

sudo apt-get update
sudo apt-get install coturn
接下来,编辑sudo vi/etc/turnserver.conf并更改以下选项:

fingerprint
lt-cred-mech
realm=ip-address-public-droplet
listening-ip=ip-address-public-droplet
user=test:test
TURNSERVER_ENABLED=1
接下来,编辑sudo vi/etc/default/coturn并添加以下选项:

fingerprint
lt-cred-mech
realm=ip-address-public-droplet
listening-ip=ip-address-public-droplet
user=test:test
TURNSERVER_ENABLED=1
为我们的计划创建或修改服务包:

sudo vi /etc/systemd/system/coturn.service
然后粘贴的内容

修改单位文件后,应重新加载systemd进程本身以获取更改:

sudo systemctl daemon-reload
现在安装完成,我们将启动Coturn守护进程:

sudo systemctl start coturn
由于systemctl不提供输出,我们将检查状态以验证服务是否已正确启动:

sudo systemctl status coturn
现在我们已经手动启动了守护进程并验证了它正在运行,我们将确保它在引导时自动重新启动:

sudo systemctl enable coturn
在您的应用程序中,您需要以下内容:

var pcConfig = {  
  'iceServers': [
    {'urls': 'stun:ip-address-public-droplet:5349'},
    {'urls': 'turn:ip-address-public-droplet:5349', 'username': 'test', 'credential': 'test'}
  ]
};
您可以通过以下方式使用TURN强制应用程序:

var pcConfig = {  
  iceTransportPolicy: "relay",
  'iceServers': [
    {'urls': 'stun:ip-address-public-droplet:5349'},
    {'urls': 'turn:ip-address-public-droplet:5349', 'username': 'test', 'credential': 'test'}
  ]
};
建立连接后,您可以通过查看统计页面来检查是否使用了TURN服务器中继

Chrome地址栏:chrome://webrtc-internals 或Firefox地址栏:关于:webrtc

查找“粗体”标题:Conn-audio-1-0 googCandidatePair

不使用任何内容:googRemoteCandidateType:local

使用STUN:googRemoteCandidateType:STUN

使用TURN:GOOGREMOTETYPE:继电器