Socket.IOを使ってNode.jsでリアルタイムWebアプリを開発する
はじめに
前回は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": "*" } }
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- クロスドキュメントメッセージングやWebSocketを使ってみる
- expressで開発したWebアプリをeXcaleで動かす
- サンプルのプログラムコード解説
- Firebaseのこれからとリアルタイムデータベースの補足説明
- Node.jsとExpress.jsで開発したWebアプリをeXcaleで動かす
- Slackを独自アプリケーションで拡張する
- スロットを使って任意の入力を受け付けよう
- 「Ace」を使って「TAURI」で「テキストエディタ」アプリを作ろう
- FirebaseプログラムをCompute Engineにディプロイする
- デスクトップアプリライクな操作性を実現するドラッグ&ドロップAPI