Javascript 如何建立浏览器到浏览器(对等)连接?
如何在客户端使用HTML5、CSS和JavaScript编写一个网站,以便在加载页面后,在客户端浏览器之间实现直接tcp/ip连接 我需要这样做以减少延迟,因为站点将要求将其中一个用户的输入尽快传输到另一个用户,因此将数据从客户端A发送到服务器,然后再发送到客户端B不是一个好的选择 我以前读过关于这个主题的文章,但没有找到有效的解决方案/例子。据我所知,客户机之间的直接连接可以使用Silverlight、Java或Flash等插件实现Javascript 如何建立浏览器到浏览器(对等)连接?,javascript,html,tcp,p2p,tcp-ip,Javascript,Html,Tcp,P2p,Tcp Ip,如何在客户端使用HTML5、CSS和JavaScript编写一个网站,以便在加载页面后,在客户端浏览器之间实现直接tcp/ip连接 我需要这样做以减少延迟,因为站点将要求将其中一个用户的输入尽快传输到另一个用户,因此将数据从客户端A发送到服务器,然后再发送到客户端B不是一个好的选择 我以前读过关于这个主题的文章,但没有找到有效的解决方案/例子。据我所知,客户机之间的直接连接可以使用Silverlight、Java或Flash等插件实现 有没有不需要插件的解决方案?我只想使用JavaScript。
有没有不需要插件的解决方案?我只想使用JavaScript。我会让你失望的-目前仅使用JavaScript是不可能的。WebSocket(和Socket.IO)允许在客户端和服务器之间进行类似套接字的连接,但不允许在客户端之间进行连接。你的选择是一个插件-无论是Flash、Silverlight、Java还是定制的
您可以使用socket.io并通过编写一个简单的代理服务器来模拟它。我想让您注意一个事实,现在大多数用户都在NAT或防火墙之后,这意味着您无法轻松建立到用户计算机的传入连接。因此,您的想法(如果可能的话)只在某些情况下有效,并且会给您的解决方案带来额外的复杂性。因此,可能具有持久连接(使用WebSocket或socket.io)的客户机-服务器系统是更好的选择 关于Stackoverflow,这里有几个关于浏览器中P2P连接的主题: 正如大多数主题文章中提到的,2008年HTML5工作草案都有“对等连接”一节:
- (W3C编辑稿)
- ()
MediaStream
,并且可以用多种方式进行测试。传输应用程序数据,如String
/ArrayBuffer
/。。。直到现在才被支持
因为分离了发送和接收通用应用程序数据的字符串(String
、ArrayBuffer
和Blob
)。(2012年4月10日)
4月3日,Mozilla也发布了第一个工作示例
DataChannel计划用于Chrome的第25版,在一个标志后面,同时可以在Firefox每晚/Aurora中测试(2012年12月12日):
侦听
/充当服务器,则会解决此问题。您将能够以全双工方式与任何服务器通信,但您的客户不能成为服务器。此外,如果可能的话,您将遇到一百万个防火墙问题。Emil的解决方案虽然速度较慢,但效果会更好。从技术上讲,WebSocket可以在任何地方使用。但在浏览器中,由于安全限制,这种情况不会发生。盖耶斯解释了这一点。另外,请注意,此解决方案可能会更快,因为通常服务器放置在具有巨大带宽容量的位置,因此您的服务器可以很好地处理100个客户端,在使用真正的p2p时,用户连接很快就会饱和。@Emil Ivanov:你说的没错,但如果只是1对1连接,应该会更快。WebRTC对等连接没有信令服务器:另请看,这是一个在这一领域有一定吸引力的项目,相对来说比较不错。最简单的方法是使用和AJAX调用。速度很快,不到50毫秒。现在是2014年,你能用最新的进展更新你的优秀帖子吗?@myroslav是一个很好的起点。到目前为止,Firefox、Chrome和Opera提供了全面的支持,并且可以与addequate适配器进行互操作。我很快就会做到!2016年在澳大利亚。我们可以得到浏览器点对点的最新链接吗?是的,更新怎么样?