Socket.io-overview

提供:Dev Guides
移動先:案内検索

Socket.IO-概要

Socket.IOは、*リアルタイムWebアプリケーション*用のJavaScriptライブラリです。 Webクライアントとサーバー間のリアルタイムの双方向通信を可能にします。 これには2つの部分があります。ブラウザで実行される*クライアント側ライブラリ*と、node.js用の*サーバー側ライブラリ*です。 両方のコンポーネントには同一のAPIがあります。

リアルタイムアプリケーション

リアルタイムアプリケーション(RTA)とは、ユーザーが即時または最新として認識している期間内に機能するアプリケーションです。

リアルタイムアプリケーションのいくつかの例は次のとおりです-

  • インスタントメッセンジャー-Whatsapp、Facebook Messengerなどのチャットアプリ 新しいメッセージを受信するためにアプリ/ウェブサイトを更新する必要はありません。
  • プッシュ通知-Facebookの写真に誰かがタグを付けると、すぐに通知を受け取ります。
  • コラボレーションアプリケーション-Googleドキュメントなどのアプリ。複数のユーザーが同じドキュメントを同時に更新し、すべてのユーザーのインスタンスに変更を適用できます。
  • オンラインゲーム-Counter Strike、Call of Dutyなどのゲームもリアルタイムアプリケーションの例です。

なぜSocket.IOなのか?

LAMP(PHP)のような人気のあるWebアプリケーションスタックでリアルタイムアプリケーションを作成することは、従来非常に困難でした。 サーバーの変更をポーリングし、タイムスタンプを追跡する必要があり、本来よりもかなり遅いです。

ソケットは従来、ほとんどのリアルタイムシステムを設計するソリューションであり、クライアントとサーバー間に双方向通信チャネルを提供していました。 これは、サーバーがクライアントにメッセージをプッシュできることを意味します。 イベントが発生するたびに、サーバーがイベントを取得し、関係する接続クライアントにプッシュするという考え方です。

Socket.IOは非常に人気があり、 Microsoft Office、Yammer、Zendesk、Trello などの多くの組織で使用され、堅牢なリアルタイムシステムを構築しています。 これは、 GitHub で最も強力な* JavaScriptフレームワーク*の1つであり、最も依存度の高いNPM(ノードパッケージマネージャー)モジュールです。 Socket.IOには巨大なコミュニティもあります。つまり、ヘルプを見つけるのは非常に簡単です。

ExpressJS

Expressを使用して、Socket.IOが動作するWebサーバーを構築します。 他のノードサーバー側フレームワーク、またはノードHTTPサーバーさえ使用できます。 ただし、ExpressJSを使用すると、ルートなどを簡単に定義できます。 Expressの詳細を読み、基本的な考え方を理解するには、link:/expressjs/index [ExpressJSチュートリアル]にアクセスしてください。