本地网络上的WebRTC?

本地网络上的WebRTC?,webrtc,Webrtc,我一直在读关于WebRTC的文章,它看起来很有前途。我想做一个简单的局域网游戏,自动连接同一网络上的人。虽然我可以找到人们询问类似的问题,并且回答他们这是可能的,但我找不到任何关于如何做到这一点的清晰教程 然而,我对WebRTC和web编程一般来说是非常陌生的。所以也许我只是不知道该找什么 那么,如何在本地网络上使用WebRTC自动连接用户,而无需任何人运行单独的服务器或连接到internet?他们应该能够在自己的计算机上打开一个html文件,并连接到在同一网络上执行此操作的所有其他人,即使没有

我一直在读关于WebRTC的文章,它看起来很有前途。我想做一个简单的局域网游戏,自动连接同一网络上的人。虽然我可以找到人们询问类似的问题,并且回答他们这是可能的,但我找不到任何关于如何做到这一点的清晰教程

然而,我对WebRTC和web编程一般来说是非常陌生的。所以也许我只是不知道该找什么

那么,如何在本地网络上使用WebRTC自动连接用户,而无需任何人运行单独的服务器或连接到internet?他们应该能够在自己的计算机上打开一个html文件,并连接到在同一网络上执行此操作的所有其他人,即使没有internet


谢谢

没有某种信号机制,WebRTC无法工作。基本上,您的客户机需要至少了解彼此的一些信息,而WebRTC中的这个“信息”是一个SDP包(会话描述协议)。交换SDP包后,WebRTC引擎将尝试以最直接的方式连接客户端

试试这篇文章:

它将使您基本了解WebRTC的工作原理,您将自己回答问题。关键词:信号、眩晕和转身


祝你好运

至少有一台机器需要是服务器,也就是说,它需要有一个打开的端口来侦听。这是生活中所有联系的事实;当一台机器打开连接时,另一端需要另一台机器响应。没有这一点,就无法建立任何联系

如果您愿意让一台或所有计算机在端口上侦听,则可以在LAN上设置WebRTC。在这种情况下,您不需要晕眩或转身,因为没有NAT遍历


WebRTC不需要电击或打开LAN。WebRTC端点可以使用其在LAN上的已知地址生成本地ICE候选。这些信息通过信号交换,或者直接在SDP中交换,或者作为ICE候选者在涓流ICE中交换。可以设置对等连接,而无需联系LAN外部的STUN服务器。

在两个对等建立直接连接之前,它们都应交换一组数据(网络参数、媒体配置、可用协议等),以便了解如何相互连接。他们可以使用SDP(会话描述协议)完成这个过程


因此,您需要网络中的信令服务器,每个潜在对等方都可以访问该服务器。当客户端想要连接到“WebRTC网络”时,它应该首先连接到信令服务器。然后,信令服务器将通知其他对等方我们有一个新的,并且所有对等方将通过信令服务器与SDP交换数据。之后,对等方将能够建立到新对等方的直接连接。当建立直接连接时,所有数据都直接在对等方之间传输。

WebRTC是,除非你计算它的作用,它巧妙地使用WebRTC来查找连接到同一lan上的人,然后在他们之间协调仅lan的文件传输。为什么会有“不上网”的限制?除非你在树林里的小木屋里,否则我会尝试类似的东西。@jib我试过sharedrop,看起来效果很好。有没有解释他们是如何在lan上进行发现的?它可能会按外部ip地址对请求进行分组,而外部ip地址在lan上的所有机器上都是相同的(例如路由器的外部ip)。此外,它通过WebRTC.Aha知道每台机器的本地ip地址,这是有意义的。一名本地球员担任东道主就可以了。如何做到这一点?我找到的所有教程都假设某个远程服务器使用STUN/TURN而不是本地主机。@Theodler从现有的服务器实现和LAN上的设置开始。对等方应能够在局域网上连接,而不会晕眩/转弯。一旦您完成了这项工作,您就可以知道如何用自己的代码复制服务器功能。基本上,这是一个在你想要连接的对等方之间传递SDP消息的问题,这取决于你的应用程序应该如何运行。但是,我的理解是,使用STUN或TURN服务器将确保远程主机为连接打开端口,并且客户端主机将接收包含如何连接信息的ICE候选服务器。如果没有此步骤,如何配置一台主机以连接到另一台主机,确保目标主机已打开连接端口?假设使用javascript,一些代码或对类的引用会有所帮助。我回答自己:在本地网络中,本地生成的ICE候选对象必须通过
addIceCandidate
广播并添加到所有其他主机。非常好的例子@David您的WebRTC端点可以在不使用STUN服务器的情况下生成本地ICE候选,而STUN服务器是通过信令发送的。大概在您的局域网上,这些候选者足以连接。由于您在局域网上,因此不需要STUN服务器。