无法在websocket ping中调用redis.get()函数

时间:2015-04-11 01:17:00

标签: node.js websocket redis

我有以下node.js代码运行良好,但我似乎无法执行console.log - 原因是什么? redis在范围内,redis.get()在较早的位置正常工作(所以我知道语法很好)..没有执行的console.log被注释为“#无法执行这行“在代码中。将不胜感激如何调试..

该程序打印出'pong'和'pong2',所以我知道它正在响应ping。

var WebSocketServer = require('ws').Server
var wss = new WebSocketServer({
    port: 8080
});
var redis = redis_server.createClient(6379, 'localhost');

wss.on('connection', function(ws) {
    ws_auth(redis, ws, function(authresult, uid) {
        if (!authresult) {
            ws.close();
            return;
        }
        ws.on('ping', function() {
            console.log('pong')
            var cookie = ws.upgradeReq.headers.cookie;
            cookie_json = JSON.parse(cookie);
            redis.get('session:' + cookie_json.sessionid, function(err, value) {
                console.log(getDateTime() + ': value ' + value + " session exits");#cannot execute this line
            });
            ws.pong();
            console.log('pong2')
        });
    });
});

1 个答案:

答案 0 :(得分:0)

也许JSON.parse正在抛出一个被吞下的错误。确定reddit服务器是否正在接收事件是很有价值的。