Socket.IOを使ってNode.jsでリアルタイムWebアプリを開発する

はじめに前回はExpressを利用したWebアプリの開発について簡単に解説をしました。引き続き今回はNode.jsでリアルタイムWebアプリケーションを開発するためのライブラリであるSocket.IOを利用したアプリケーションの開発について簡単に解説します。なお、今回の記事もアプリケーションのデプ

西谷 圭介

2013年3月27日 20:00

はじめに

前回はExpressを利用したWebアプリの開発について簡単に解説をしました。引き続き今回はNode.jsでリアルタイムWebアプリケーションを開発するためのライブラリであるSocket.IOを利用したアプリケーションの開発について簡単に解説します。

なお、今回の記事もアプリケーションのデプロイ先としてeXcale(http://www.excale.net/)を利用します。eXcaleも含めた環境面は前回、前々回で解説ならびに用意した環境を前提としています。従って今回はじめての方は適宜ご自分の環境に読み替えるか、前回の記事を参考に環境のセットアップを行ってください。
→ expressで開発したWebアプリをeXcaleで動かす

Socket.IOとは

Socket.IOとはNode.jsでWebSocketを使ったリアルタイムなWebアプリケーション開発のためのデファクトスタンダードと言えるライブラリです。WebSocketとはリアルタイムな双方向通信を行うための規格ですが、詳細な解説は他に譲ります。

Socket.IOはこのWebSocketを利用するためだけでなく、WebSocketをサポートしていないブラウザや環境の場合では自動的にそれらを検出してxhr-polling接続やその他の方法による代替接続方法による通信を行ってくれます。

eXcaleでのWebSocketサポート

eXcaleでNode.js+Socket.IOを利用する場合には少々注意が必要です。というのも、eXcaleがユーザーのアプリケーション向けに提供しているリクエストルータは。ベータ版である現時点ではWebSocket通信には対応していないからです。

従いまして、Socket.IOを使ったアプリケーションをeXcaleで動かす場合、現時点ではその通信手段はxhr-polling接続になります。といってもコーディングを行う上ではその辺りを意識することはほとんどなく、WebSocketではなくxhr-pollingを利用した通信への切り替えはSocket.IOが自動的に行います。正式サービスの開始までにはWebSocketへ対応する予定となっています。

事前準備

まずは前回の記事で解説したExpressを利用してアプリケーションのひな形を作成していきます。

$ express socket-sample

作成したディレクトリに移動して依存するパッケージをインストールします。

$ cd socket-sample/
$ npm install

Socket.IOをインストールします。

$ npm install socket.io

必要に応じてpackage.jsonにSocket.IOに関する記述を以下のように追記しておくと良いでしょう。packagejsonに記述があれば"npm install"でSocket.IOもまとめてインストールされます。

{
 "name": "socketio-sample",
 "version": "0.0.1",
 "private": true,
 "scripts": {
  "start": "node app"
 },
 "dependencies": {
  "express": "3.0.6",
  "jade": "*",
  "socket.io": "*"
 }
}
この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30