Несколько дополнительных вызовов в 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);
}
});
}
});