2013-06-24 6 views
12

私はnodejsでプログラミングしています。node.ioとajaxの両方をノードサーバーに使用する方法を見てきました。 socket.ioはajaxを置き換えるように設計されていますか?どのような場合にsocket.ioを使用するのが良いか、どのajaxが良いかを知りたいのは興味があります。入力いただきありがとうございます。socket.ioとajaxをいつ使用するか

答えて

24

WebSocketの主なもの(socket.io経由)は、ajaxにはサーバープッシュがないことを示しています。したがって、サーバー上の新しいイベント(別のユーザーがメッセージを送信したなど)を知りたい場合は、サーバーポーリングを行う必要があります。つまり、ajaxリクエストを比較的頻繁に定期的に送信します。ほとんどの場合、サーバーは何も新しいことはないと応答しますが、何か新しいことがあるときにクライアントはそれを知ることができます。

Webソケットを使用すると、サーバーはポーリングなしでクライアントに積極的に通知を送信できます。したがって、アプリケーションでサーバー上で開始してブラウザに表示する必要のある種類の情報がある場合は、Webソケットを使用する方が優れています。

  • イベントストリームモデルでサーバにイベントを送信
    • AJAXまたはウェブソケット本質的に同等の、伝統的な形ポストOK要求/応答モデルでサーバにデータを送信
      • Webソケットが最適です.AJAX経由でエミュレートすることもできます。
    • サーバからブラウザへイベントをプッシュする
      • Webソケットは、ajax long polling、flashなどでエミュレートできます(実際のWebソケットが利用できない場合は、socket.ioにはいくつかのフォールバックがあります)。
    • 古いブラウザ、一部のモバイルプラットフォーム
      • ウェブソケットのサポートは存在しないので、AJAXは、あなたのフォールバック迅速な返信用
  • +0

    おかげです。あなたがそうしなければ、アクティブなコミュニケーションのためにWebソケットを使用するのが正当な理由がない限り。 Webソケットには何らかの欠点がありますか? –

    +0

    Webソケットのブラウザサポートは、特にモバイル上のajaxの場合と同じくらい完全ではありません。すべての新技術と同様に、それらの周辺のツールやコミュニティの知識は、Ajaxほど成熟していません。また、Webソケットが動作する前に、特定の設定が必要なプロキシやWebサーバーのデプロイメント上の課題もあります。 –

    +0

    @PeterLyons通知システムを作っているなら、Webソケットが最適でしょうか? –

    関連する問題