2017-01-15 34 views
0

在下面的文章的Java信令服務器: WebRTC Cookbook Article實現WebRTC

闡述瞭如何在Java信令服務器可以實現。

據說:

因此,無論客戶交換必要的數據(包括網絡的詳細信息),然後建立直接對等網絡連接。連接建立後,對等端不再使用服務器。

但看着代碼服務器仍然需要中繼通信到所有客戶端(sendToAll方法)。

任何人都可以解釋我如何直接點對點通信是可能的這樣的代碼?我仍然無法弄清楚2個(或更多)客戶端如何與p2p進行通信。

回答

0

信令服務器用於建立WebRTC對等連接。對等連接是兩對音頻,視頻和數據之間的直接連接。

它一般是不可能設置無信令服務器的WebRTC等連接,因爲大多數用戶都沒有固定的IP地址,並在網絡地址轉換(NAT)系統和狀態防火牆。信令服務器在兩個用戶之間中繼消息,直到他們能夠成功協商對等連接爲止,例如,STUN通過互聯網看到他們的IP地址。

建立對等連接後,不需要信令服務器。但是,您可以設計一個系統,在該系統中仍然通過信號通道發送數據,如果這更符合您的需求。

WebRTC的信令部分未指定。信令服務器需要爲用戶提供一些方法來選擇他們想與誰進行通信。

WebRTC具有點對點設計。爲了支持2個以上的對等體,每對對等體需要建立對等體連接,或者系統需要媒體服務器來組合音頻/視頻流。

0

這意味着當p2p WebRTC連接啓動並運行時,信號服務器確實不會被使用。

雖然,信令服務器可以提供一些額外的功能 - 如廣播文本聊天(當一個節點可以發送文本數據到所有其他同行)。在這種情況下,您的應用程序仍然可以使用信號服務器交換對等節點之間的額外數據,但它不是WebRTC數據,它只是對於應用程序而言並不適用於WebRTC堆棧的數據。

所以,在正常的情況下的WebRTC堆不使用在建立P2P連接之後(但實際上所述信令信道可以是用於重新協商,例如)的信令。但是,您的應用程序仍然可以繼續使用信號通道來處理自己的額外數據。它實際上完全取決於您在應用程序和信號服務器中實施的邏輯。