2013-11-29 79 views
2

我想要的基本上是在同一本地網絡上的兩臺不同計算機之間建立連接。但我想通過電腦的本地IP來做到這一點。 (如192.168.2.23等)基於本地IP的PeerConnection

這必須是完全本地連接。沒有TURN或STUN服務器。我不確定這是否可能。因爲沒有太多有關WebRTC的文檔/示例/信息。

那麼,我怎樣才能創建一個從我的電腦到另一個只是通過其本地IP作爲參數的連接?

更新:更清晰;想象有一個HTML頁面包含一些激活我的相機和音頻服務的代碼。另一個 - 幾乎相同的頁面在其他計算機上打開。等待連接請求......並且我的頁面中有一個文本框用於鍵入屬於本地網絡上其他計算機的IP。鍵入192.168.2.xx和賓果!我和其他電腦有聯繫。

我想這個過程是基於IP的,因爲網絡上可能有2個以上的設備。它們都是可能的設備來建立連接。所以我需要通過他們的IP來聯繫他們。

任何示例代碼或解釋都會很棒!即使它說明這是不可能的。

謝謝

回答

3

對等發現是任何WebRTC應用程序中的重要組成部分。這是一個昂貴的術語:「嗨,我是電腦4,我想和你談談!」。 看到它通過電話呼叫朋友。你需要先撥號碼。 這部分沒有在WebRTC標準中定義。你需要在你的應用程序中實現這個邏輯。一旦你知道你想打電話給誰,你需要一種交換重要信息的方式。這就是所謂的信號,就像flo850在他的答案中一樣。 在建立任何點對點連接之前,需要信令。

想出一個你在局域網中使用7個設備的想法。

如果您將這些設備連接到例如WebSockets服務器並且位於同一通道中。

可以編寫WebSockets服務器將消息路由到特定的接收方。 連接到頻道的設備通常用某種ID標識,想象您使用設備的IP。 當您想要與IP 192.168.0的計算機4通話時。4您將信道上的交換消息(信令)發送給具有ID(您要連接的設備的IP)的接收方。 用示例代碼描述瞭如何發送信令(offer,answer)here

希望這會有幫助

+1

這就是解釋我需要。壞消息,但我確定這一點。至少,我知道我無法用webRTC做什麼。非常感謝。 – alix

2

用戶通常坐在NAT後面;這就是在WebRTC中實施ICE概念的原因。

如果兩個用戶坐在同一NAT後面;你可以通過 「NULL」 參數值超過 「RTCPeerConnection」 跳過ICE服務器構造:

var peer = new [webkit|moz]RTCPeerConnection (null); 

現在,瀏覽器將使用 「host」 候選人,也被稱爲 「本地」 候選人。

+0

那麼兩臺電腦如何識別對方?想象一下本地網絡上有7臺電腦。 – alix

+0

@alix IP是唯一的,只要所有7臺計算機都在同一個網絡上,信令服務器將協調在計算機之間建立SDP,之後他們現在能夠「相互識別」 –

2

你還需要一個信令服務器。在ICE候選搜索期間,您的客戶將通過此信令服務器交換其本地IP