node.jsを試してみる – ServersMan@VPS

node-js


クライアントサイドとサーバーサイドがプログラム言語が一緒だったらなぁ、
そんな願いを叶えてくれる最近話題の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.jshttp://nodejs.org/
V8 JavaScript Enginehttp://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

関連ページ
JavaScriptオススメ書籍

本格的にJavaScriptをやるなら読んでおいたほうが良い書籍2冊。

JavaScriptパターン ―優れたアプリケーションのための作法

新品価格
¥2,940から
(2011/3/16 16:01時点)

JavaScript: The Good Parts

新品価格
¥1,690から
(2011/3/16 16:02時点)

非同期I/O処理などNode.jsについてもっと深く理解したい場合の書籍

UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI

新品価格
¥8,400から
(2011/3/16 17:15時点)