I want to use redis pub sub mechanism inside REST api in express framework.Whenever I wrote the subscribe event outside the rest api it's working fine
module.exports = async function (app) {
client.on('error', (err) => console.log('Redis Client Error', err));
await client.connect();
const subscriber = client.duplicate();
await subscriber.connect();
app.get('/test', async (req, res) => {
console.log('---- inside ----')
await client.publish('request', 'request-message');
res.json({value:"Ok"})
});
await subscriber.subscribe('response', (message) => {
console.log(message); // 'message'
// subscriber.unsubscribe('response');
// res.json({value:message})
});
}
But if I add the subscribe event inside the Rest Api, then It's not working.
module.exports = async function (app) {
client.on('error', (err) => console.log('Redis Client Error', err));
await client.connect();
const subscriber = client.duplicate();
await subscriber.connect();
app.get('/test', async (req, res) => {
console.log('---- inside ----')
await client.publish('request', 'request-message');
await subscriber.subscribe('response', (message) => {
console.log(message); // 'message'
// subscriber.unsubscribe('response');
res.json({value:message})
});
});
}
Using pub-sub mechanism I want to connect other servers.But If I add the subscribe event outside the rest api,then I can't send the response to the client.How to achive this process?