Несколько дополнительных вызовов в Redis Nodejs - PullRequest
0 голосов
/ 19 февраля 2019

Несколько дополнительных вызовов в Redis Nodejs

Я получаю несколько вызовов абонента в Redis.Как избежать этого. Я использую метод pub / sub для связи между HTTP-сервером и видео Publisher, которые публикуют видео на Redis.после добавления видео в 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);
    }
  });
}

});

...