浏览器html5实时游戏。广播游戏状态选项

时间:2016-07-15 05:46:06

标签: javascript html5 flash websocket webrtc

我正在为facebook制作实时游戏。现在我使用websockets广播状态。但对于实时数据,udp要好得多。我发现那里有WebRTC。但是我不能使用它,因为它是点对点的,我想要权威服务器(运行物理并使其更难作弊)。

我考虑以下选项:

  1. 使用闪光灯插座。但我从未使用过flash。甚至可以在javascript for flash udp中创建一个包装器吗?有多难?在服务器端需要一些特殊的东西吗?
  2. 也许浏览器以某种方式支持udp?我可以使用udp将视频或音频流式传输到浏览器吗?也许可以将视频流用于我的游戏状态
  3. 使用websockets。我有一些客户端预测,我希望延迟低于100毫秒(甚至更低,与你坦白) - 所以也许没关系?
  4. 使用这个WebRTC的东西。也许我可以以某种方式模拟服务器上的浏览器并将其用作同行?例如,运行一堆chromes并使用websocket将游戏数据发送给他们(没有延迟,他们在一台机器上),然后通过udp流向客户端?但浏览器可以限制点对点连接,我需要服务器上的cpu来运行物理
  5. 什么是最佳选择?你有没有实现其中一个,结果是什么?

1 个答案:

答案 0 :(得分:1)

您绝对可以构建或使用支持WebRTC数据通道的服务器端组件;从浏览器/客户端的角度来看,它只是另一个同行。

严格来说,WebRTC数据通道不是基于UDP的,而是基于SCTP的;但实际上,它们提供了实时数据交换所需的灵活性(例如,能够建立有利于低延迟而不是可靠性的连接)。

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