2017-06-19 66 views
2

我是WebRTC的新手。通過tcp的Webrtc媒體?

我瞭解到轉動服務器。

下面的東西用於配置轉發服務器在webrtc應用程序的TCP上工作。在WebRTC應用

實施例轉彎服務器配置: - ?

{ 

     url: ‘turn:192.158.29.39:3478?transport=tcp’, 
     credential: ‘JZEOEt2V3Qb0y27GRntt2u2PAYA=’, 
     username: ‘28224511:1379330808′ 

} 

用於運輸= TCP的含義是它可以作用於TCP協議一樣,他們說。

我的問題是,

TURN服務器工作在TCP意味着,它只是建立在TCP它的工作原理反過來服務器之間的連接或轉移通過轉服務器,它使用了TCP協議的WebRTC媒體。爲什麼使用TCP數據包?

是否可以通過TCP數據包傳輸WebRTC媒體?

回答

2

不推薦使用TCP強制WebRTC媒體,它只是嚴格防火牆的後備選項。

如果您在TURN URL中指定了?transport=tcp,則WebRTC客戶端將通過TCP連接到TURN服務器。
客戶端將通過TCP發送STUN請求來分配中繼候選(據我所知,目前chrome/firefox只請求UDP中繼候選)。

要通過TURN服務器強制嚴格TCP:

  • 只能使用方法打開URL與?transport=tcp
  • 指定iceTransportPolicy:"relay",使所有媒體將通過TURN

流交換中繼後候選人(udp)之間peerConnections,媒體路徑將如下

P1 < --TCP - > P1TURN < --UDP - > P2TURN < --TCP - > P2

如果兩個P1TURN & P2TURN總是相同的,那麼你可以選擇TURN繼電器LAN/LO路徑接口,即您將獲得具有LAN/lo IP的UDP中繼候選。

如果您想要避免UDP &兩次TURN媒體路徑,您需要使用一些SFU/SVC,如Jitsi(支持僞SSL候選)/ Janus
然後媒體路徑將是如下面

P1 < --TCP - > SFU/MCU < --TCP - > P2