[node.js]express-mvc-bootstrap + socket.io
MVCな開発がしたくてexpress-mvc-bootstrapをinstallしたけど、socket.ioをどう使うか調べたMemo.
環境はnode.js v0.4.7, express v2.3.10, express-mvc-bootstrap v0.1.2, socket.io v0.6.18
今までは次のようなCommandで実行していたけど、socket.ioを利用するためにはexpress.createServerしたInstanceを渡さないといけない。詳しくはOfficial Documentで
# ../node_modules/express-mvc-bootstrap/eb server
しょうがないのでこのScriptを参考にapp.jsと同じDirectoryにserver.jsを作って、次のようなScriptを書いた。
/**
* server.js
*/
var port = 3000;var io = require('socket.io')
var server = require('./app').boot();
server.listen(port);
console.log('\r\n\x1b[36mApplication started on port:\x1b[0m ' + port);//
// start up socket.io
var io = io.listen(server)
, buffer = [];io.on('connection', function(client){
client.send({ buffer: buffer });
client.broadcast({ announcement: client.sessionId + ' connected' });client.on('message', function(message){
var msg = { message: [client.sessionId, message] };
buffer.push(msg);
if (buffer.length > 15) buffer.shift();
client.broadcast(msg);
});client.on('disconnect', function(){
client.broadcast({ announcement: client.sessionId + ' disconnected' });
});
});
今のところsocket.ioのExampleをそのまま利用。
実行するのは
# node server.js
本当はsocket.ioもcontrollerで受け取るような仕組みにしたい。それはまた今度考える。
< Related Posts >