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

时间:2010-11-09 22:15:45

标签: jquery websocket

的WebSockets?我刚刚跑过websockets并听说过一些有关它的好东西,但是发现html5目前还不是很容易获得,所以将它转换为基于浏览器的MMO到websockets并让游戏玩家升级是值得的下载他们需要的东西或使用彗星,如果有人浏览器支持websockets;那样跑吗?有什么想法吗?

4 个答案:

答案 0 :(得分:9)

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

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

对于其他浏览器,您可以使用基于Flash的后备版web-socket-js。它运行良好,并且很容易做自动回退。它比本机WebSockets慢,但仍然具有比AJAX / COMET低得多的延迟。

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

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

总结:目前唯一不支持WebSockets的地方是没有原生WebSockets且没有Flash的浏览器(即当前的iOS和较旧的Android手机)。

一些misc笔记:

  • 我发现http://caniuse.com是HTML5(及相关)浏览器支持信息的最佳资源。

  • HTML5 Cross-browser Polyfills是一个非常有用(且很长)的填充程序,后备和填充列表,它们将HTML5功能添加到不支持它们的浏览器中。

答案 1 :(得分:1)

看看Socket.IO。它允许您针对类似WebSockets的API进行编程,该API在当前支持WebSockets的少数浏览器中本机工作,但可以回退到旧版浏览器中的Flash或长轮询。使用像Socket.IO这样的polyfill,立即开始使用WebSockets肯定是可行的。

答案 2 :(得分:0)

根据WebSockets

  

对于客户端,WebSocket在Firefox 4,Google Chrome 4,Opera 10.70和Safari 5中实现。

因此,如果用户尝试使用上面未列出的浏览器,则会遇到问题...

答案 3 :(得分:0)

只要启用了Flash,您就可以使用Flash Sockets在各种浏览器上模拟本机WebSockets。