HTTP サーバー
node.jsは動的なウェブサービスのフレームワークなので、いわゆる普通のHTTPサーバーとして単に静的コンテンツを提供するためには少しコードを書く必要がある。
node.js上のHTTPサーバーsenchalabs/connectにミドルウェアexpressjs/serve-staticを入れて使うと簡単にできて、拡張もし易い。
作業ディレクトリ下の/wwwをHTTPサーバーで公開するコードは以下のようになる。
server
var listeningPort = 8080;
var uiDir = __dirname + '/www';
var http = require('http');
var connect = require('connect');
var serveStatic = require('serve-static');
var app = connect();
app.use(serveStatic(uiDir));
var server = http.createServer(app);
server.listen(listeningPort);
console.log('Listening on port: ' + listeningPort);
(注意: connect v3からミドルウェアの追加方法が変更されているsenchalabs/connect#middleware)
socket.io
これにSocket.IO v1を組み合わせるのは以下のコードを追加すれば良い。
(注意: socket.io v0.9以前ではインスタンス生成コードが異なる)
server
var io = require('socket.io')(server);
io.on('connection', function (socket) {
socket.emit("emitEvent", data);
socket.on("listenEvent", function(data){});
}
クライアント側には以下のコードを入れる。
client
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.emit("emitEvent", data);
socket.on("listenEvent", function(data){});
</script>