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

标签 javascript html flash websocket webrtc

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

我考虑以下选项:

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

最好的选择是什么?您实现过其中一项吗?结果如何?

最佳答案

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

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

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

关于javascript - 浏览器html5实时游戏。广播游戏状态选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38388638/

相关文章:

java - Android 动画 flash vs. HTML5 vs. Android 的原生动画库?

javascript - jQuery 表格滚动

javascript - 即使变量存在,为什么该函数返回未定义?

html - 什么是 HTML 实体 '
' ?

android - Android WebView 中的 Flash - 分层问题

.net - FLV 缩略图

javascript - 对象不支持属性或方法 'getAll'

javascript - 按数据属性对 div 进行排序 - 类型错误

javascript - 使用 javascript 绘制从客户端套接字发送的图像

html - 如何防止 <button> 缩小到其内容的大小?