node.jsでWebSocket通信
先日戦艦対決アプリ※をリリースしたものの、※http://mixi.jp/run_appli.pl?id=32239
ブラウザで同期されるまでに当然ラグがある為、なかなか戦闘が盛り上がらない。。
アメーバーピグっっぽいタイムリーにユーザー同士が関わりあえるような仕組みなら
もっと面白いはず!。。と、いうことでWebSocket通信について勉強とインストールを試す。
(参考)
http://weble.org/2011/03/30/node-js
kayacのhtml5試験※でも出ていたように、
WebSocketの仕様についてはW3Cの仕様策定から独立している。
※kayacの試験はHTML5の仕様策定から外れているものはどれかというような内容で
WebSQLDatabaseやWebWorkersなどと並んでWebSocketが並んでいたような。。
Node.jsを使うことで例えばXMLHttpRequestではサーバー側からクライアントへプッシュすることが
できなかったのができるようになる!ということ。
コネクションはhttpを使うわけではなく専用のプロトコルを使うので処理は軽いらしい。
【やったこと】
1.Node.jsのインストール
【操作】
(参考)http://havelog.ayumusato.com/develop/javascript/e211-nodejs_build_env.html
node.jsの基礎
http://weble.org/2011/03/30/node-js
[node.jsのインストール]
#wget http://nodejs.org/dist/node-v0.4.11.tar.gz #tar xzvf node-v0.4.11.tar.gz #cd node-v0.4.11 ...'configure' finished successfully (2.708s) #make #make install #node -v
[npmのインストール]
node.js 用のパッケージマネージャー socke.IOのインストールで使用する #curl http://npmjs.org/install.sh | sh #npm -v
[socket.IOのインストール]
#npm install socket.io
エラーが出た。下記と同じ症状。(参考)http://d.hatena.ne.jp/piglovesyou/20110910/1315626521
npm ERR! tar "-mvxpf" "-" "-o" "-C" "/tmp/npm-1315900568250/1315900596918-0.6780186912510544/contents/___package.npm" tar: Ignoring unknown extended header keyword `LIBARCHIVE.creationtime' npm ERR! tar "-mvxpf" "-" "-o" "-C" "/tmp/npm-1315900568250/1315900596918-0.6780186912510544/contents/___package.npm" tar: Ignoring unknown extended header keyword `SCHILY.dev' npm ERR! tar "-mvxpf" "-" "-o" "-C" "/tmp/npm-1315900568250/1315900596918-0.6780186912510544/contents/___package.npm" tar: Ignoring unknown extended header keyword `SCHILY.ino' npm ERR! tar "-mvxpf" "-" "-o" "-C" "/tmp/npm-1315900568250/1315900596918-0.6780186912510544/contents/___package.npm" tar: Ignoring unknown extended header keyword `SCHILY.nlink' npm ERR! tar "-mvxpf" "-" "-o" "-C" "/tmp/npm-1315900568250/1315900596918-0.6780186912510544/contents/___package.npm" tar: Ignoring unknown extended header keyword `SCHILY.dev'
tarのバージョンが古いのでインストール
[tarのバージョン入れ替え]
#tar --version 1.15.1 #cat /etc/redhat-release CentOS release 5.5 (Final) #cd /usr/local/src #wget http://ftp.gnu.org/gnu/tar/tar-1.26.tar.gz #tar xzvf tar-1.26.tar.gz #cd tar-1.26 #./configure
configureでエラーが出た。ログを読むとオプションを付ければよさげなので、再度試す
checking whether mknod can create fifo without root privileges... configure: error: in `/usr/local/src/tar-1.26':
configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
See `config.log' for more details.
#./configure FORCE_UNSAFE_CONFIGURE=1
一回コンソールから抜ける・・
#tar --version tar (GNU tar) 1.26
できたので、再度socket.IOのインストール
#npm install socket.io
インストール完了!
次はnginxを使って実際に処理を使用してみる!