-1

簡単な質問:socket.ioのサイトでwebsocketのいくつかのフォールバックを見ました(http://socket.io/#browser-support

しかし、どのブラウザがどのフォールバックを使用しているかを(長いグーグルセッションの後でも)見つけることができません。私が尋ねている理由は、長いポーリングフォールバックを避けたいので、どのブラウザーとバージョンがそれを使用するかを知る必要があるからです。

[編集]これが反対票を投じられたのを見て、私は自分自身を気遣う必要があります:

どのブラウザ/バージョンが最終的に長いポーリングにフォールバックするかを知る必要があります。私の場合、長いポーリングを使用すると問題が発生するため、単純に長いポーリングの使用を想定することはできません。これがそれをより明確にし、なぜ私がそれを簡単に見つけることができなかったのかを願っています。

[編集2]不明瞭でごめんなさい:

基本的にどのブラウザがフォールバックを使用するかを尋ねたので、ちょっとわかりました。しかし、私はすでにこれを知っているので、それは私が尋ねることを意図したものではありません。どのフォールバックが使用されるかを検出または知る方法を尋ねるつもりでした。私のアプリケーションでは、フラッシュは問題ありませんが、長時間のポーリングでは問題が発生する可能性があります。ありがとう!

4

1 に答える 1

4

どのブロワーが機能するかを事前に知りたい場合は、CanIUseが最適なリファレンスです。

アプリケーションの実行中にアプリケーションのサポートを検出する場合は、WebSocketオブジェクトの存在をテストするだけです。

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

(このコードは、node.jsアプリ自体ではなく、ブラウザーでクライアント側で実行する必要があります)

編集:

使用されているフォールバックを正確に知る必要がある場合は、ソケットを作成してから、socket.transport.nameプロパティを確認してください。(したがって、ソケットが「ソケット」と呼ばれる場合は、チェックしますsocket.socket.transport.name)。次のいずれかになります。

  • websocket
  • htmlfile
  • xhr-ポーリング
  • jsonp-ポーリング
于 2013-02-22T18:27:42.693 に答える