是否可以创建一个Web应用程序,在中央服务器的帮助下,可以与同一Web应用程序的其他用户建立直接连接?我在想象一个类似于UDP打孔的过程.
我已经阅读了HTML5中的新WebSockets API,但看起来您必须在完全双工连接开始之前启动与WS兼容服务器的连接.我正在考虑更多关于在客户端之间建立直接连接的过程,服务器只涉及初始握手.
注意:Java小程序不计算在内.我只对标准浏览器技术感兴趣.
这是一个明智的答案,而不是智能的猜测:
HTML 5计划允许来自javascript的点对点连接,但这些连接不会是原始TCP.
完整的规范可以在http://dev.w3.org/html5/websockets/找到
JRH
编辑:具体参考点对点连接,请查看以下链接:
关于点对点连接:http://www.w3.org/TR/2008/WD-html5-20080122/#peer-to-peer
关于与本地网络的广播连接:http://www.w3.org/TR/2008/WD-html5-20080122/#broadcast
关于TCP连接(在编码协议中):http://www.w3.org/TR/2008/WD-html5-20080122/#tcp-connections
完整的提议规范:http://www.w3.org/TR/2008/WD-html5-20080122/#network
值得注意的是,这些能力仍在谈判中.能够创建"本地聊天"网络应用程序会很高兴:)
JRH
更新10/17/2012:此功能现在存在于Chrome Stable v22中.要在Chrome中使用此功能,必须在chrome:// flags中启用两个标志:
启用MediaStream
启用PeerConnection
然后,您可以访问AppRTC演示页面来试用该演示.有关设置Chrome以使用对等功能和启用设备捕获的详细说明,请参阅WebRTC - 运行演示页面.
更新: Ericcson Labs的工程师在WebKit构建中有一个概念证明,它可以执行HTML5 Peer to Peer Conversational Video.
他们在博客中展示了该技术的实际应用,以及该技术如何运作的图表和解释.
他们正在努力使其稳定并致力于WebKit存储库.
在撰写本文时(2017年),WebRTC现在是大多数现代浏览器的标准部分(约占使用中的70%),并允许多媒体流,点对点和打孔.
可以在html5rocks.com上找到WebRTC的文档,示例代码和实例.
根据caniuse.com和html5rocks.com,以下浏览器支持WebRTC:
全面支持: Edge 14,Firefox 22,Firefox Android 55
部分支持: Android浏览器56,Chrome 20,Chrome Android 29,Edge 12,Firefox 17,Opera 18,Opera Android 20,Opera Mobile 12,UC浏览器Android 11.4
未来支持( 2017年第3季度):适用于iOS 11的Chrome,适用于iOS 11和OS X的Safari 11 10.11
不支持: IE,IE Mobile,Opera Mini
WebRTC的饱和率在Apple设备上受到限制,因为Safari 11尚未发布,需要iOS 11或OS X 10.11.虽然从过去的升级趋势预测,到2018年,大约75%的iOS设备应该可以使用WebRTC,到2020年将提供100%.