尽管已连接,但ioredis pub / sub并未监听

时间:2018-07-12 13:58:25

标签: node.js redis ioredis

ioredis(v3.2.2)似乎没有在听我的Redis发布/订阅事件,我不确定为什么

我正在启动一个侦听传入消息的服务器,如下所示:

var Redis = require('ioredis');

redis.monitor(function (err, monitor) {
  monitor.on('monitor', function (time, args, source, database) {
    console.log(time + ": " + util.inspect(args));
  });
});

redis.psubscribe('*', function(err, count) {
  console.log("Listening to " + count + " channels.");
  if(err){
    console.log(err);
  }
});

// republish any data received
redis.on('pmessage', function(subscribed, channel, message) {
  console.log("pmessage: " + message);
});

运行上述命令时,日志输出显示:

Listening to 1 channels.

当我将消息发布到Redis服务器的队列中时,日志输出显示:

1531403083.031496: [ 'SELECT', '0' ]
1531403083.036594: [ 'RPUSH',
  'queues:myqueuename',
  '{## JSON message body ##}' ]

所以:我很显然已经连接到服务器并正在接收数据,但是我不明白:

  1. 为什么monitor回调未记录PSUBSCRIBE或PUBLISH事件,这可能是原因:
  2. 未触发pmessage回调函数

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

已解决。我忘记了启动队列侦听器服务,如此处记录:https://laravel.com/docs/5.1/events#broadcasting-events