WebRTC是正确的吗? (实时多人游戏)

想象一下,我想用HTML5(客户端)和node.js(服务器)创build一个实时多人游戏。

我需要将数据从服务器传输到客户端,反之亦然。

在本地应用程序中,我会使用UDP来获取大多数数据(玩家位置,…),因为它比TCP更快,而且在丢失的时候没有任何危险。

HTML5我可以(仅)使用WebSockets 。 WebSocket在TCP之上,因此速度不够好,性能不错。

我听说过WebRTC ,但我不知道这是否可以解决这个问题。

有人有经验吗?

(我知道,WebRTC仍然不支持大多数浏览器,但这对我来说并不重要。)

在WebRTC方面,听起来像是你需要的是DataChannel:见草案协议和HTML5 Rocks文章 (免责声明:我写的!)

DataChannel是一项正在进行的工作,尚未被任何浏览器实现。

至于其他WebRTC组件,MediaStream(getUserMedia)则支持Chrome,Firefox Nightlies和Opera; RTCPeerConnection在Chrome中处于稳定状态,位于旗帜之后(即将出版的版本),并在2013年第一季度承诺Firefox 18。

编辑:RTCDataChannel现在已经在Firefox和Chrome上实现。

Chrome“单页”演示: simpl.info/dc,Firefox 演示 。

RTCDataChannel分别提供基于会话的/可靠的以及无连接/不可靠的传输,类似于本地客户端中的TCP和UDP。 更多信息在这里 。 截至2013年,这是一个可行的技术,尽pipe只是在以后的Chrome和Firefox版本。

根据html5rocks.com ,现在也可以使用二进制types进行传输。 所以你应该拥有一个高效的本地UDP客户端的所有function。 然而 ,我还不能确定二进制转换是否已经从webrtc存储库, 已经被修复 ,一直到Chrome,还是现在只在Chrome Canary中可用。