2015-11-05 82 views
1

我目前正在用node.js和socket.io制作html5游戏。 该游戏的基本知识是4人围绕试图打彼此移动...我应该使用websockets还是webRTC进行4人游戏

我的问题是我应该使用Websockets还是WebRTC? 这种沟通最适合什么?点对点4个玩家还是通过服务器?

随时分享您的想法,我很新的这东西..

+1

你想问的主要问题是:谁拥有状态和数据?如果状态和数据存储在客户端并直接相互发送/接收,如果客户端断开连接会发生什么?游戏的一部分会消失吗?如果他们通过窃取数据而作弊?您是否希望服务器拥有数据(或者至少验证它)是出于这些原因? – xdumaine

回答

3

的WebRTC可不仅用于音频/视频流,同时也用于发送数据。 P2P在发送大量数据时非常有用。

在你的情况下,流量很小。而且,我发现使用服务器的许多优点 - 同步,或者将来还会使用身份验证或历史记录等功能。

还有执行部分。使用WebRTC,您仍然需要一个信令服务器。因为你没有会话协商部分,所以websocket更容易实现。连接速度也更快。

就你个人而言,我不打扰WebRTC。

后来更新:还有浏览器支持的问题:websockets VS WebRTC,如@Myst在评论中提到。

+1

我还会提到WebRTC的浏览器支持目前有限。 Websockets将在更广泛的浏览器和客户端上工作。 – Myst

+1

如果使用最新的socket.io,则可以使用socket.io p2p在客户端之间建立webrtc数据通道,而无需额外开销。 http://socket.io/blog/socket-io-p2p/ – xdumaine

+0

感谢您的回应,浏览器支持并不重要,因为我正在为针对新技术的学校作业进行这项工作。 虽然有可能在4player环境中使用这个p2p socket.io,因为它表示两个对等体之间的双向事件通道。想想我会先用套接字尝试一下,看看事情进展如何。 –

0

同时使用。

WebRTC数据通道非常适合在客户端之间以最低延迟发送数据,因为数据不通过服务器。

从你描述的游戏中,这听起来像是低延迟将是至关重要的,所以我一定会考虑使用数据通道来尽快更新对手的位置。与此同时,我也会发送带有网络套接字的数据给服务器,作为游戏真相的守护者,以验证没有人会作弊。

四人球员不应该是一个问题。让每个客户端以“网状”打开与所有其他客户端的对等连接。

相关问题