Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于webrtc的ICE候选和sdp的几个问题_Javascript_Php_Webrtc - Fatal编程技术网

Javascript 关于webrtc的ICE候选和sdp的几个问题

Javascript 关于webrtc的ICE候选和sdp的几个问题,javascript,php,webrtc,Javascript,Php,Webrtc,假设有3个用户A、B、C。我正在使用Ajax而不是WebSocket来发送和获取消息 问题: 1,在这种情况下,我只需要B和C可以看到A,而不需要A可以看到B和C。我在B中添加了A的sdpoffer。那么A有必要添加B的sdpanswer吗 2.我发现createOffer生成的候选项有17个左右。我不知道如何处理这些问题。B和C应该一个接一个地把这些加上17次吗 3,正如我说的3个用户。这是一个一对多应用程序。如何实施?我的主要问题是如何处理每个人的sdp和ICE候选人。是否需要添加其他人的s

假设有3个用户A、B、C。我正在使用Ajax而不是WebSocket来发送和获取消息

问题:

1,在这种情况下,我只需要B和C可以看到A,而不需要A可以看到B和C。我在B中添加了A的sdpoffer。那么A有必要添加B的sdpanswer吗

2.我发现createOffer生成的候选项有17个左右。我不知道如何处理这些问题。B和C应该一个接一个地把这些加上17次吗

3,正如我说的3个用户。这是一个一对多应用程序。如何实施?我的主要问题是如何处理每个人的sdp和ICE候选人。是否需要添加其他人的sdp和ICE候选人

以下是我的建议:

{候选:候选:1754064501 1 udp 2122255103 2001::5ef5:79fd:8c8:c74e:f166:22f 52522典型主机生成0,sdpMid:audio,sdpMLineIndex:0} {候选者:候选者:1026183099 1 udp 2122194687 192.168.2.100 52523典型主机生成0,sdpMid:audio,sdpMLineIndex:0} {候选:候选:1754064501 2 udp 2122255102 2001::5ef5:79fd:8c8:c74e:f166:22f 52524典型主机生成0,sdpMid:audio,sdpMLineIndex:0} {候选者:候选者:1026183099 2 udp 2122194686 192.168.2.100 52525典型主机生成0,sdpMid:audio,sdpMLineIndex:0} {候选:候选:1754064501 1 udp 2122255103 2001::5ef5:79fd:8c8:c74e:f166:22f 52526典型主机生成0,sdpMid:video,sdpMLineIndex:1} {候选:候选:1026183099 1 udp 2122194687 192.168.2.100 52527典型主机第0代,sdpMid:video,sdpMLineIndex:1} {候选:候选:1754064501 2 udp 2122255102 2001::5ef5:79fd:8c8:c74e:f166:22f 52528典型主机生成0,sdpMid:video,sdpMLineIndex:1} {候选:候选:1026183099 2 udp 2122194686 192.168.2.100 52529典型主机第0代,sdpMid:video,sdpMLineIndex:1} {候选:候选:638524037 1 tcp 1518275327 2001::5ef5:79fd:8c8:c74e:f166:22f 0典型主机tcptype活动生成0,sdpMid:audio,sdpMLineIndex:0} {候选:候选:1940501323 1 tcp 15182149119 192.168.2.100 0典型主机tcptype活动生成0,sdpMid:audio,sdpMLineIndex:0} {候选:候选:638524037 2 tcp 1518275326 2001::5ef5:79fd:8c8:c74e:f166:22f 0典型主机tcptype活动生成0,sdpMid:audio,sdpMLineIndex:0} {候选:候选:1940501323 2 tcp 1518214910 192.168.2.100 0典型主机tcptype活动生成0,sdpMid:audio,sdpMLineIndex:0} {候选:候选:638524037 1 tcp 1518275327 2001::5ef5:79fd:8c8:c74e:f166:22f 0典型主机tcptype活动生成0,sdpMid:video,sdpMLineIndex:1} {候选:候选:1940501323 1 tcp 15182149119 192.168.2.100 0典型主机tcptype活动第0代,sdpMid:video,sdpMLineIndex:1} {候选:候选:638524037 2 tcp 1518275326 2001::5ef5:79fd:8c8:c74e:f166:22f 0典型主机tcptype活动生成0,sdpMid:video,sdpMLineIndex:1} {候选:候选:1940501323 2 tcp 1518214910 192.168.2.100 0典型主机tcptype活动第0代,sdpMid:video,sdpMLineIndex:1} 无效的 这是我的应用程序代码:你会发现我使用了一个临时按钮,它调用Get Answer,让a获得sdp,而icecandidate已经注释掉了B或C

var getUserMedia=navigator.getUserMedia | | navigator.webkitGetUserMedia | | navigator.mozGetUserMedia | | navigator.msGetUserMedia; //使用谷歌的stun服务器 var iceServer={ ICEServer:[{ 网址:stun:stun.l.google.com:19302 }] }; var PeerConnection=window.PeerConnection|| window.webkitPeerConnection00 | | window.webkirtpeerconnection | | window.mozRTCPeerConnection; var pc=新的PeerConnectioniceServer; var iceTimes=1; 函数getAnswercid { 教师;
/*因为i=1;i我没有在php上工作过,但就WebRTC而言:

使用Web套接字还是Ajax在对等点之间中继数据没有任何区别。 即使B只是消费者,a是提供商,B仍然需要提供sdp应答,事实上,谁打电话、谁应答都不重要,提供商需要在提供sdp应答/应答之前添加他的媒体流。 ICE候选地址就像物理地址一样,它们帮助对等方找到彼此,A不是唯一创建它们的对等方,B和C也创建了它们。您需要将它们传递给双方相应的对等连接对象。如果不交换它们,就无法启动呼叫。 虽然是一对多,但对于每个新消费者B、C,…,providerA需要创建单独的对等连接,您也可以查看Muaz Khan的。如果您想保护提供商的带宽,您需要查看MCU,这是Kurento的一对多广播示例。
谢谢老兄!这帮了大忙!再次感谢。我的问题中一定有这么多的文字错误?很抱歉。我在问题的顶部写了一个通知。内容好像我的英语不好!这是我第一次回答这个问题
用英语提问,我不知道它为什么消失了。。。所以我认为我问题中的第2点可能会让你感到困惑,我的观点是有17个ICE候选者,A、B或C是否需要通过pc添加所有17个ICE候选者。addIceCandidate 17次?或者只需要在这17个ICE候选中添加一个ICE候选?所有17个都必须添加!非常感谢。我需要学习更多关于webrtc和英语:-哈哈,亲爱的大家!我的问题中一定有这么多的文字错误!很抱歉。我在这个问题的顶部写了一个通知我的英语不好!这是我第一次用英语提问,我不知道它为什么消失了。。。