Friday 12 January 2018

Redis pubsub - Listening to a specific channel : How to do it?

I want to use a better way than the way I achieved below (it feels tacky), how can I make it listen to a specific channel rather than using if statements?pubsub.jsvar redis = require("redis"); var subscriber = redis.createClient(); var publisher = redis.createClient(); subscriber.auth("mypassword", function (callback) { console.log("subscriber is connected"); }); publisher.auth("mypassword", function (callback) { console.log("publisher is connected"); }); module.exports = { publisher: publisher, subscriber: subscriber }; test.jsvar express = require('express'); var router = express.Router(); var path = require("path"); var async1 = require("async"); var client = require("../databases/redis/redis.js").client; var subscriber = require("./realtime/operations/pubsub").subscriber; var publisher = require("./realtime/operations/pubsub").publisher; subscriber.subscribe("test1"); subscriber.subscribe("test2"); subscriber.on("message", function (channel, message) { if (channel == "test1") { console.log("test1 " + message); } if (channel == "test2") { console.log("test2 " + message); } }); router.get('/pubsubTest', function (req, res, next) { async1.waterfall([ function (callback) { publisher.publish("test1", "test1 - message 1"); publisher.publish("test2", "test2 - message 1"); publisher.publish("test1", "test1 - message 2"); callback(null, 'done!'); } ], function (err, result) { res.sendStatus(200); }); }); module.exports = router; Thanks!

Submitted January 13, 2018 at 12:32AM by laraveling

No comments:

Post a Comment