
クライアントサイドとサーバーサイドがプログラム言語が一緒だったらなぁ、
そんな願いを叶えてくれる最近話題のnode.jsを試してみた。
テスト環境は遊び用で借りているServers@VPS(CentOS 5)で、OSはCentOS 5です。
Node.jsとは
サーバーサイトJavaScriptのひとつで、Googleが開発したV8 JavaScript Engine上で動く。
Node.jsはRubyのイベントマシーンやPyhonのTwistedの影響を受けており、スケーラビリティの高いネットワークプログラムを簡単に開発できるように設計されている。
イベントループモデルなのでApachなどで使われているスレッドモデルに比べてメモリ消費量が圧倒的に少ない。
また、I/Oライブラリにlibevとliveioを使うことで非同期I/Oによる並列高速処理を実現した。
node.js – http://nodejs.org/
V8 JavaScript Engine – http://code.google.com/p/v8/
必要なライブラリ
python – version 2.4 or higher
libssl-dev – SSL/TLS通信を行う場合は必要
$ yum install -y gcc gcc-c++ openssl-devel python
ソースからインストールする
$ mkdir ~/sources
$ cd ~/sources
$ wget http://nodejs.org/dist/node-v0.4.2.tar.gz
$ tar zxvf node-v0.4.2.tar.gz
$ cd node-v0.4.2
$ ./configure –prefix=$HOME/sources/node-v0.4.2
$ make
$ make install
$ export PATH=$HOME/sources/node-v0.4.2/bin:$PATH
NPMをインストール
NPMはパッケージ管理ツールでNodeのライブラリなど追加するときに使用します。
$ curl http://npmjs.org/install.sh | sh
$ npm install express
Hello Worldを表示しよう
お約束の「Hello World」です。やり方はいたってシンプルです。
下記のファイルを作成して実行するだけです。
※「127.0.0.1」はあなたのIPに変更して実行してください。
example.js
var http = require(‘http’);
http.createServer(function (req, res) {
res.writeHead(200, {‘Content-Type’: ‘text/plain’});
res.end(‘Hello World\n’);
}).listen(8124, “127.0.0.1”);
console.log(‘Server running at http://127.0.0.1:8124/’);
下記のコマンドを実行します。
$ node example.js
Server running at http://127.0.0.1:8124/
TCPサーバーを立ち上げよう
hello worldと同じ要領でjsファイルを作成して実行します。
※「127.0.0.1」はあなたのIPに変更して実行してください。
example-tcp.js
var net = require(‘net’);
var server = net.createServer(function (socket) {
socket.write(“Echo server\r\n”);
socket.pipe(socket);
})server.listen(8124, “127.0.0.1”);
下記のコマンドを実行します。
$ node example-tcp.js
Server running at http://127.0.0.1:8124/
Telnetを使って動作確認してみます。
※Windows Vistaでは既定ではtelnetコマンドが無効化されているので有効化してから試してください。有効化するには[コントロールパネル] – [プログラムと機能] – 「Windows の機能の有効化または無効化」を選択し、「Telnet クライアント」にチェックを付ければOKです。
telnet 127.0.0.1 8124
関連ページ
- node.jsを試してみる
- express+node.js+sequelizeを試してみる
- MongoDBインストール手順
- node.js+MongooseでMongoDBを試してみる
- express+node.js+redisでセッション管理
- express+node.jsのSocket.ioを使ってチャネル対応チャットを作成
JavaScriptオススメ書籍
本格的にJavaScriptをやるなら読んでおいたほうが良い書籍2冊。
![]() |
JavaScriptパターン ―優れたアプリケーションのための作法 新品価格 |
![]() |
新品価格 |
非同期I/O処理などNode.jsについてもっと深く理解したい場合の書籍
![]() |
UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI 新品価格 |