1

我有一个 redis 连接订阅了一个带有获取请求的频道

app.get('/wait', function (req, res) {
    redisSub.on('message', function(channel, msg) {
        console.log('rcv: ' + msg);
    });
});

后来我用不同的获取请求发送消息

app.get('/done/:msg', function (req, res) {
    redisPub.publish('message', req.params.msg);
});

问题是我希望该请求在收到消息后停止侦听。否则,当我再次通过时,它仍然会在收听并再次收到下一条消息。收到消息后,我不确定如何从自身中删除侦听器。

4

1 回答 1

1

未经测试,但这应该可以工作,

var callback = function(channel, msg) {
    console.log('rcv: ' + msg);
    redisSub.removeListener('message', callback); 
}
redisSub.on('message', callback);
于 2012-10-15T05:36:52.650 回答