基本上,我想要在同一本地网络上的两台不同计算机之间创建连接。但我想通过计算机的本地IP来做到这一点。 (如192.168.2.23等)
这必须是完全本地连接。没有TURN或STUN服务器。我不确定这是否可行。因为没有太多关于WebRTC的文档/示例/信息。
那么,我如何创建一个从我的计算机到另一个的连接只是将其本地IP作为参数传递?
更新:更清楚;想象有一个html页面包含一些激活我的相机和音频服务的代码。另一个 - 几乎同一页面在其他计算机上打开。正在等待连接请求...我的页面中有一个文本框,用于键入属于我本地网络上其他计算机的IP。键入192.168.2.xx和宾果游戏!我和其他电脑之间有联系。
我希望此过程基于IP,因为网络上可能有超过2个设备。所有这些都是可能的设备来创建连接。所以我需要通过他们的IP来达到他们。
任何示例代码或解释都会很棒!即使它告诉我这是不可能的。
由于
答案 0 :(得分:3)
同行发现是任何WebRTC应用程序的重要组成部分。这是一个昂贵的术语:“嗨,我是电脑4,我想跟你说话!”。 将其视为通过电话呼叫朋友。你需要先拨打他的号码。 WebRTC标准中未定义此部分。您需要在应用程序中实现此逻辑。一旦你知道你想打电话给谁,就需要一种交换重要信息的方法。这被称为信令,就像他的答案中的flo850一样。 在建立任何对等连接之前,需要进行信令传输。
想出一个关于局域网中7个设备的用例的想法。
如果您将这些设备连接到例如WebSockets服务器并且位于同一通道中。
可以编写WebSockets服务器以将消息路由到特定接收器。 连接到频道的设备通常使用某种ID进行识别,假设您使用设备的IP。 当您想要使用IP 192.168.0.4与计算机4通信时,您将通道上的交换消息(信令)发送到具有ID的接收器,ID是您要连接的设备的IP。 如何使用示例代码here描述如何发送信令(报价,答案)。
希望这有帮助
答案 1 :(得分:2)
用户通常坐在NAT后面;这就是为什么ICE概念在WebRTC中实现的原因。
如果两个用户都坐在同一个NAT后面;您可以通过在“ RTCPeerConnection ”构造函数上传递“ NULL ”参数值来跳过ICE服务器:
var peer = new [webkit|moz]RTCPeerConnection ( null );
现在,浏览器将使用“ host ”候选人,也称为“本地”候选人。
答案 2 :(得分:2)
你仍然需要一个信令服务器。在ICE候选搜索期间,您的客户端将通过此信令服务器交换其本地IP