-1

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

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

[编辑]看到这被否决了,我需要自我介绍:

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

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

我现在有点明白我基本上询问了哪些浏览器使用后备。但这不是我要问的,因为我已经知道了。我的意思是问如何检测或知道将使用哪个后备。对于我的应用程序来说,flash 没有问题,但是长轮询可能会出现问题。谢谢!

4

1 回答 1

4

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

如果您想在应用程序运行时检测它的支持,那么您可以测试WebSocket对象是否存在:

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

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

编辑:

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

  • 网络套接字
  • html文件
  • xhr-轮询
  • jsonp-轮询
于 2013-02-22T18:27:42.693 回答