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);
}
});
}
});