浏览器websocket后备和支持

时间:2013-02-22 16:24:31

标签: node.js websocket socket.io

简单问题: 我在socket.io网站上看到了几个websockets(http://socket.io/#browser-support

的后备

但我找不到(即使经过长时间的谷歌会议)哪些浏览器使用哪种后备。 我问的原因是我想避免长时间的轮询后退,所以我需要知道哪些浏览器和版本会使用它。

[编辑]看到这个被低估了我需要自己解决:

我需要知道哪些浏览器/版本最终会回归长轮询。我不能简单地假设在我的情况下使用长轮询,因为长轮询会带来问题。希望这更清楚,为什么我不能轻易找到它..

[编辑2]很抱歉这么不清楚:

我现在有点看到我基本上问过哪些浏览器使用了回退。但这并不是我想要问的,因为我已经知道这一点。我想问一下如何检测或知道将使用哪种回退。对于我的应用程序,闪存没有问题,但长轮询可能会出现问题。谢谢!

1 个答案:

答案 0 :(得分:4)

如果您想知道哪些浏览器提前工作,那么Can I Use是一个很好的参考。

如果要在应用程序运行时检测应用程序中的支持,那么您只需测试WebSocket对象是否存在:

if (WebSocket) {
    // Use websockets
} else {
    // Fallback will be used
}

(此代码应在客户端,在浏览器中运行 - 而不是在您的node.js应用程序本身中运行)

修改

如果您需要知道完全正在使用什么回退,请创建一个套接字,然后检查socket.transport.name属性。 (因此,如果您的套接字被称为“套接字”,您将检查socket.socket.transport.name)。它可以是以下之一:

  • 的WebSocket
  • HTMLFILE
  • XHR轮询
  • JS​​ONP轮询