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



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

我考虑以下选项:

  1. 使用闪存插座。但我从未使用过闪光灯。甚至有可能在javascript中为flash udp制作一个包装器吗?有多难?它是否需要在服务器端进行一些特殊操作?
  2. 也许浏览器以某种方式支持 UDP?我可以使用 udp 将视频或音频流式传输到浏览器吗?也许可以将视频流用于我的游戏状态
  3. 使用网络套接字。我有一些客户端预测,我希望延迟低于 100 毫秒(坦率地说甚至更低) - 所以也许没关系?
  4. 也许我可以以某种方式模拟服务器上的浏览器并将其用作对等方?例如,运行一堆 chromes 并使用 websocket 将游戏数据发送给它们(没有延迟,它们在一台机器上),然后通过 udp 流式传输到客户端?但是浏览器可以限制点对点连接,我需要服务器上的 cpu 来运行物理

什么是最好的选择?您是否实施了其中之一,结果如何?

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

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

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

最新更新