
159
レシピ 5.4 socket.io でリアルタイムウィジェットを作成する
totals
変数に、
JavaScript
オブジェクトの代わりに
Redis
クライアントを格納します。
widget_server.js
var totals = require('redis').createClient(); //
修正
次に、
connection
イベントハンドラを修正します。
widget_server.js
io.sockets.on('connection', function (socket) {
var origin = (socket.handshake.xdomain)
? url.parse(socket.handshake.headers.origin).hostname : 'local';
socket.join(origin);
totals.incr(origin, function (err, total) {
io.sockets.to(origin).emit('total', total);
})
socket.on('disconnect', function () {
totals.decr(origin, function (err, total) {
io.sockets.to(origin).emit('total', total);
});
});
});
クライアントが接続すると、
totals[origin]
に
1
を加える代わりに、
Redis
の
INCR ...