質問

node.jsとsocket.ioを使用します。 socket.ioとの接続速度に問題があります。 Internet ExplorerとOperaでは、接続速度に問題があります。 -FlashSocketまたはWebSocketを使用するとき。輸送モードのXHR接続のモードを使用すると、すべてのブラウザー(すなわち、FF、Chrome、Opera)で高速です。

輸送モード-XHRポリングとフラッシュ /ウェブソケットの違いは何ですか?輸送の最良のモードは何ですか?接続速度を最適化する方法socket.io?

アドバイスをありがとう!

役に立ちましたか?

解決

Webブラウザー間で接続の一般的な速度が時間の経過とともに異なっていた場合、私は驚かされますが、インターネットエクスプローラーとオペラの初期接続に遅延が表示される理由は、ネイティブWebsocketサポートが利用できないためです。デフォルトで無効になっています。したがって、FlashSocketを選択すると、接続が確立される前に追加のFlashオブジェクト(SWFファイル)をダウンロードする必要があります。

WebSocketsはIE10で導入されており、Operaでは利用可能ですが、デフォルトでは無効になっています。

輸送モード-XHRポリングとフラッシュ /ウェブソケットの違いは何ですか?

  • xhr -polling-参照 http://en.wikipedia.org/wiki/push_technology#long_polling
  • FlashSocket Connection -Flash Socketオブジェクトを使用してWebSocketサーバーへの接続を確立し、WebSocketプロトコルを使用して通信します。これは、FlashとJavaScriptの間に相互作用があることを意味し、追加のFlashオブジェクト(SWFファイル)をダウンロードする必要があることを意味します。

輸送の最良のモードは何ですか?

ネイティブにサポートするWebブラウザー用のWebSockets(Chrome、Firefox、Safari)。 Flashオブジェクト(SWFファイル)がブラウザキャッシュにある場合、接続が高速になります。そうでない場合は、遅延があります。 XHRロングポリングは優れたソリューションであり、クロスブラウザーを動作させますが、ネガがあります。

  • 世論調査の間に、展示されているデータが古くなっている可能性があります(古い)。
  • httpの長期pollingは複数の接続を使用して双方向機能をシミュレートするため、WebSocketsが使用する単一のTCP接続よりも効率の低い接続方法です。
  • HTTPにはオーバーヘッドがあります。これは、リクエストとその後のリクエストごとに追加のヘッダー情報が送信されることを意味します。

接続速度を最適化する方法socket.io?

(私はsocket.ioをかなり初めてですこれは単なる提案です)

私は見ます socket.ioドキュメントの構成 条件付きで設定できるかどうかを確認します transports 接続しているブラウザに基づいています。あなたの経験に基づいて、これは次のとおりです。

  • Chrome、Firefox、Safari -WebSockets
  • つまり、オペラ-XHRポルリング

他のヒント

接続時間を短縮するには、「Connect Timeout」パラメーターを使用して、接続タイムアウト(デフォルトでは10秒)を減らすことができます。

たとえば、接続タイムアウトを1秒に減らすには:

socket = io.connect('http://your-site.com',{'connect timeout': 1000});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top