サーバーサイド JavaScript 実行環境 Node.js をインストールします。
# EPELからインストール |
[root@localhost ~]# yum --enablerepo=epel -y install nodejs npm |
テストツールを作成して動作確認します。任意の一般ユーザーで実行可能です。
[root@localhost ~]$ vi helloworld.js |
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('listening on http://127.0.0.1:1337/'); # 実行 |
[root@localhost ~]$ node helloworld.js & |
# アクセスして確認 (以下のような応答があれば OK) |
[root@localhost ~]$ curl http://127.0.0.1:1337/ |
Hello World |
Socket.IO をインストールし、WebSocket を利用した簡易チャットツールを作成して、動作確認します。
[root@localhost ~]$ npm install socket.io express |
[root@localhost ~]$ vi chat.js |
var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); }); io.on('connection', function(socket){ socket.on('chat message', function(msg){ io.emit('chat message', msg); }); }); http.listen(1337, function(){ console.log('listening on *:1337'); }); |
[root@localhost ~]$ vi index.html |
<!DOCTYPE html> <html> <head> <title>WebSocket Chat</title> </head> <body> <form action=""> <input id="sendmsg" autocomplete="off" /><button>Send</button> </form> <ul id="messages" style="list-style-type: decimal; font-size: 16px; font-family: Arial;"></ul> <script src="/socket.io/socket.io.js"></script> <script src="http://code.jquery.com/jquery.min.js"></script> <script> var socket = io(); $('form').submit(function(){ socket.emit('chat message', $('#sendmsg').val()); $('#sendmsg').val(''); return false; }); socket.on('chat message', function(msg){ $('#messages').append($('<li style="margin-bottom: 5px;">').text(msg)); }); </script> </body> </html> |
[root@localhost ~]$ node chat.js |
listening on *:1337 |
任意のクライアントコンピュータで Webブラウザを起動し、「http://(サーバーのホスト名またはIPアドレス):1337/」にアクセスして、動作確認します。 複数クライアント、または ブラウザを複数起動すると、動作が確認しやすいでしょう。