浏览器HTML5的实时游戏。 广播游戏状态选项(Browser html5 real-time

2019-09-25 18:06发布

我在做实时游戏的Facebook。 现在,我使用的WebSockets播状态。 但对于实时数据UDP是更好的。 我发现,有的WebRTC在那里。 但是,因为它是对等网络,我希望权威服务器(运行物理和使得它更难欺骗的),我不能使用它。

我考虑以下选项:

  1. 使用闪光灯插座。 但我从来没有使用闪光灯。 它甚至有可能使在JavaScript闪存UDP的包装? 有多难? 是否需要在服务器端的一些特殊的东西吗?
  2. 也许浏览器支持UDP以某种方式? 我可以流使用UDP的视频或音频的浏览器? 也许是可以使用视频流对我的比赛状态
  3. 使用WebSockets。 我有一些客户端预测,我希望的等待时间将低于100毫秒(甚至更低跟你坦率地说) - 虽然这也许好吗?
  4. 用这个东西的WebRTC。 也许我能以某种方式模拟在服务器浏览器,并使用它作为同行? 例如运行一堆铬合金和游戏数据发送到他们的WebSocket(无延迟,它们是一台计算机上),然后通过UDP流式传输到客户端? 但是,浏览器可以对对等网络连接数限制,我需要在服务器上运行的物理CPU

什么是最好的选择吗? 您已经实现了其中的一个结果是什么?

Answer 1:

你绝对可以建立或使用服务器端组件,将支持的WebRTC数据通道; 从浏览器/客户端的角度来看,它将是另外一个节点。

从严格意义上讲,数据的WebRTC通道没有基于UDP的,但基于SCTP; 但在实践中,他们提供的这种灵活性,你将需要实时的数据交换(如与建立有利于在可靠性低延迟连接的能力)。

使用数据信道的服务器端组件的一个例子是https://www.npmjs.com/package/rtc-dcstream



文章来源: Browser html5 real-time game. broadcast game state options