Redis Node.js中的多个子调用

时间:2019-02-19 15:36:43

标签: node.js redis publish-subscribe

Redis Nodejs中的多个子呼叫

我在Redis中接到多个订户呼叫。如何避免这种情况。我正在使用pub / sub方法在HTTP服务器与将视频发布到Redis的Video Publisher之间进行通信。在将视频放入Redis之后,订阅该频道后,它将在频道Video Publisher上发布消息。我同时收到两个消息。

redis.EXISTS(video, (error, flag) => {
// if key does not exist
if (!flag) {
  pub.PUBLISH("videos", video, (err, reply) => {
    // console.log("err", err);
    if (err) {
      return res.status(500).send(err);
    }
    // console.log("reply", reply);

    // listen for videoPublisher message.
    sub.on("message", (channel, message) => {
      console.log("message,", message.toString(), channel.toString());

      if (channel.toString() === "videoPublished") {
        redis.HGET(video, file, (err, response) => {
          if (err) {
            return res.status(500).send(err);
          } else {
            console.log("in response");
            return res.send(response);
          }
        });
      }
    });
  });


} else {
  // if key exist
  redis.HGET(video, file, (err, response) => {
    if (err) {
      return res.status(500).send(err);
    } else {
      return res.send(response);
    }
  });
}

});

0 个答案:

没有答案