根据我之前提问的理解:Kurento: STUN/TURN
从webrtcendpoint.conf.ini
配置的TURN服务器仅用于交换候选冰。我们也可以在webrtcendpoint.conf.ini
中只指定一个TURN服务器,因为我观察到的是,如果我在webrtcendpoint.conf.ini
中提供2个或更多TRUN服务器,Kurento媒体服务器服务无法启动,这是正确的吗?
还有什么办法可以验证在Kurento媒体服务器和两个对等体之间使用了哪个STUN / TURN服务器?
我们在conferenceroom.js
中提供的STUN / TURN将用于对等体之间的实际媒体流/媒体管道。这是对的吗?
如果我们在conferenceroom.js
中提供多个TURN服务器,那么TURN服务器将选择最快/最快的响应时间用于两个对等体之间的媒体流?与我们从Link获得响应时间相同。
我所观察到的是,如果webrtcendpoint.conf.ini
和conferenceroom.js
中提供的TURN服务器不同,那么我们无法看到远程参与者视频,但如果TURN服务器都是相同的那么我能够看到远程参与者的视频。它是否正确 ?
修改1:
在groupcall示例中,我们有onExistingParticipants()
和onNewParticipants()
,我们可以在receiveVideo()
和onExistingParticipants()
中定义iceServers,那么如果我们指定TURN服务器 t1会发生什么<{1}}中的kurentoUtils.WebRtcPeer.WebRtcPeerSendOnly()
和kurentoUtils.WebRtcPeer.WebRtcPeerRecvOnly()
中的TURN服务器 t2 ,那么这两个TURN服务器会在彼此之间作为中继链进行通信吗?
答案 0 :(得分:2)
仅使用从webrtcendpoint.conf.ini配置的TURN服务器 交换冰候选人。我们也只能指定一个TURN webrtcendpoint.conf.ini中的服务器,因为我观察到的是 如果我在webrtcendpoint.conf.ini Kurento中提供2个或更多TRUN服务器 媒体服务器服务无法启动,这是正确的吗?
它用于收集候选人,如果需要,用作视频中继。您KMS不太可能需要这个,因为它部署的位置由您管理。如果只能使用STUN,那么中继服务器就不会被使用。
只能配置一台服务器,
还有什么方法可以验证正在使用哪个STUN / TURN服务器 在Kurento媒体服务器和两个同行之间?
是的,WebRtcEndpoint有这个
的方法getStunServerPort()
getStunServerAddress()
getTurnUrl()
我们在conferenceroom.js中提供的STUN / TURN将用于 对等体之间的实际媒体流/媒体管道。这是对的吗?
它将用于收集客户的候选人。此外,如果您的客户端位于需要使用中继服务器的NAT后面,它将使用conferenceroom.js
中配置的客户端。请记住,媒体路径可能不对称:当来自客户端 - > kms的媒体可能没有使用中继服务器时,来自KMS的媒体 - >客户可能是由于您客户所在地的网络状况。
如果我们在conferenceroom.js中提供多个TURN服务器,那么TURN 将为媒体流选择服务器最快/最快响应时间 两个同龄人之间?与我们从此链接获得响应时间相同。
是的,候选人被探查并选出最好的候选人。
我所观察到的是,如果提供了TURN服务器 webrtcendpoint.conf.ini和conferenceroom.js与我们不同 无法看到远程参与者视频,但如果两者都是TURN 服务器是相同的,然后我能够看到远程参与者视频。 这是对的吗?
除非一个TURN工作而另一个没有工作,否则不应该这样。
修改
TURN服务器不会在它们之间交换媒体。如果需要,它们将用作与另一个同伴的中继。这个过程是
由于所有媒体都通过KMS,因此KMS是向中继服务器发送媒体的媒体。请记住,KMS始终位于同行之间。这将是
kms-&GT; T2-&GT;客户 客户端 - &GT; T1-&GT;公里
即使连接是浏览器到浏览器,TURN服务器也不会直接通信,因为它们将充当从一个对等方发送到另一个对等方的媒体的中继。这将是
client1-&GT; T2-&GT;客户端2 client2-&GT; T1-&GT;客户端1