投稿者 tel | 2012年3月23日

Windowsでsocket.ioのサンプルを動かす

Windoesでsocket.ioのchatサンプルを動かせたのでメモしておく。

1. node.jsをインストールする

http://nodejs.org/

上記サイトのDOWNLOADからWindows Installerを選択してダウンロード。msiファイルをインストール。

インストールしたのはv0.6.13

2. socket.ioをインストールする

インストーラーでインストールするとnode.jsとnpmのパスが通っているので、好きなディレクトリで以下のコマンドを実行してsocket.ioをインストールする。

npm install socket.io

今回はC:\devというフォルダをつくってコマンドプロンプトからそのフォルダに移動してコマンドを実行した。

インストールが成功するとnode_modulesというフォルダが作られる。(C:\dev\node_modulesみたいになる)

3. node_modulesのパスを通す

node.jsでrequireしたときにモジュールが探せるように先程のnode_modulesのフォルダのパスを通す。

システムの環境変数にNODE_PATHを追加して、node_modulesのパスを設定する。(今回はC:\dev\node_modules)

この状態でsocket.ioのサンプルを実行してみる。socket.ioのサンプルはnode_modules\socket.io\examplesのなかにchatとirc-outputというものがある。今回はchatを動かしてみる。chatのフォルダに移動して以下のコマンドで起動する。

node app.js

起動しようとするといろいろ足りないよって言われる。

4. chatのサンプルに必要なモジュールをインストールする

socket.ioをインストールしただけではchatのサンプルに必要なモジュールが足りないのでインストールする。必要なモジュールはapp.jsのrequireをみると

var express = require('express')
  , stylus = require('stylus')
  , nib = require('nib')
  , sio = require('../../lib/socket.io');

となっているので、expressとstylusとnibだと分かる。socket.ioをインストールしたときと同じ要領でこれらをインストールする。node_modulesがあるディレクトリ(C:\dev)に移動してコマンドを実行。

npm install express
npm install stylus
npm install nib

必要なモジュールがインストールできたので、再度socket.ioを起動してみる。

   info  - socket.io started
   app listening on http://0.0.0.0:3000

と出たら起動成功。ブラウザを立ち上げてhttp://localhost:3000を表示してみる。(localhostにしないと繋がらない)

Error: Cannot find module ‘jade’ というエラーが出る。

5. jadeをインストール

先程と同じ要領で今度はjadeのモジュールをインストールする。

npm install jade

再度、起動して、ブラウザでアクセスする。またまたエラー(Error: Cannot find module ‘./lib/jade’)が出る。

jadeのnode_modules\jade\libをのぞくとjade.jsがなかったのでgithubから直接ファイルをとってくる。

https://github.com/visionmedia/jade

ダウンロードしてきたファイル解凍してnode_modules\jade\libにlibの中身を上書きする。この状態で再度、ブラウザで試すとやっと動いた。


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。