jquery - WebSockets?开始使用基于 Javascript 的基于浏览器的 MMO 是否是新手?

标签 jquery websocket

WebSockets?我最近刚刚接触过 websockets,并听说过一些关于它的好消息,但发现 html5 目前还不太容易使用,所以是否值得改而将基于浏览器的 MMO 写入 websockets 并让玩家升级/下载他们需要的东西或使用 comet,以及某人的浏览器是否支持 websockets;就这样运行吗?有什么想法吗?

最佳答案

回答:它并不是太新,您现在几乎可以在所有浏览器上使用。

WebKit 已经支持 WebSockets 很长一段时间了(基本上任何使用 SafariChrome 的人都支持它)。从 iOS 4.2 开始,WebSocket 已开启(Apple 在之前的版本中已将其停用)。 Opera 11.0 将拥有它(10.7 现在是 11.0)。 Firefox 4.0 包含它,但默认禁用(在 about:config 中启用)。 Firefox 5.0 或 6.0 可能会默认启用它。

对于其他浏览器,您可以使用 web-socket-js这是基于 Flash 的后备。它运行良好,并且很容易进行自动回退。它比 native WebSocket 慢,但延迟仍远低于 AJAX/COMET。

如果 Javascript 是后端的有效选项,那么您可以考虑使用 NodeSocket.IO Node.js 的库。 Socket.IO 主要是一个服务器端库,支持 WebSockets(它包含 web-socket-js falback)和各种 AJAX/COMET/long-poll 方法。 Socket.IO 的客户端允许您使用与服务器端相同的 API(它与普通的 WebSockets API 非常相似),并且它会进行检测并选择最佳传输。仅当浏览器没有 native WebSocket 并且您选择不使用后备时,才会使用 AJAX/COMET/长轮询传输。

noVNC(HTML5 VNC 客户端)包含 websockify这是一个 WebSockets 到 TCP 套接字代理。共有三种实现:C、python 和 Node。它可能对您有用的引用。 noVNC 通过 WebSocket 传输大量数据,并且对延迟非常敏感。 Flash 回退的效率肯定较低,但它仍然具有非常有用的性能。 (免责声明:我制作了 noVNC)

总结:目前唯一不支持 WebSocket 的地方是没有 native WebSocket 和 Flash 的浏览器(即当前的 iOS 和旧版 Android 手机)。

一些杂项注释:

  • 我找到http://caniuse.com成为 HTML5(及相关)浏览器支持信息的最佳资源。

  • HTML5 Cross-browser Polyfills是一个非常有用(而且很长)的 shim、fallbacks 和 polyfill 列表,它们可以将 HTML5 功能添加到不支持它们的浏览器中。

关于jquery - WebSockets?开始使用基于 Javascript 的基于浏览器的 MMO 是否是新手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4139236/

相关文章:

javascript - 使用 AJAX 将数据从 JavaScript 发送到本地 Python 函数

javascript - 在 url 路径中使用通配符的 Node.js 和 Websocket

javascript - NodeJS : Redirect Client to Another Worker/Instance

javascript - 嵌入式Youtube视频在Firefox上不起作用

javascript - 如何将 json 数据传递给 highcharts 系列?

javascript - javascript中如何判断输入是否是数组类型?

javascript - 在单个应用程序中打开多个 websocket 连接

python-3.x - 如何创建 Python 安全 websocket 客户端请求?

azure - 对 Azure 中的 Websocket 限制、事件连接进行故障排除

javascript - 返回上一页时自动播放音频文件