0

node.jsとredisを使用してチャットアプリケーションでそのコードを使用していますが、Windowsマシンにインストールできないため、hiredisは使用していません

var app = require('express')()
  , redis = require('redis')
  , client = redis.createClient()
  , server = require('http').createServer(app)
  , io = require('socket.io').listen(server)
  ;

server.listen(80);

io.sockets.on('connection', function (socket) {
    console.log("client connected")

    socket.on('join', function(userid) {
        socket.set('userid', userid);

        var userco = userid+":connects";

        client.incr(userco);
    });

    socket.on('disconnect', function(userid) {

        socket.get('userid', function(err, userid) {

            var userco = userid+":connects";
            client.decr(userco);
            var usercoco = client.get(userco);
            console.log(usercoco);
            if (parseInt(usercoco)<1) {
               io.sockets.emit("remove-user",{id:userid});
            }
        });
    });
});

しかし、parseIntメソッドが機能せず、remove-userイベントも機能しません..そのための説明と解決策はありますか?

4

1 に答える 1

0
var usercoco = client.get(userco);
console.log(usercoco);

.getはASYNC関数であり、変数を返しません。

client.get(userco, function(err, res) { console.log(usercoco); }

完了するたびにコンソールにログを記録します。

于 2013-03-12T09:08:22.640 に答える