आप एक विशिष्ट चैनल के ग्राहक ग्राहक को सब्सक्राइब करना भूल गए हैं। इसके अलावा, यदि आप सभी ईवेंट देखना चाहते हैं, तो आपको पैटर्न-आधारित सदस्यता का उपयोग करना होगा।
आप कुछ ऐसा करना चाह सकते हैं (अनचाहे):
subscriber.on("pmessage", function (pattern, channel, message) {
console.log("("+ pattern +")" + " client received message on " + channel + ": " + message);
switch (channel) {
// blah blah blah
// ...
}
});
subscriber.psubscribe(''__key*__:*')
Redis दस्तावेज़ीकरण और node_redis उदाहरणों में अधिक जानकारी देखें।
अपडेट करें:
चैनल सबक्रिप्शन और पैटर्न सब्सक्रिप्शन के बीच अंतर को स्पष्ट करने के लिए यहां एक उदाहरण दिया गया है। संक्षिप्तता के लिए उचित त्रुटि प्रबंधन को छोड़ दिया जाता है।
var redis = require("redis");
var client = redis.createClient('6379','127.0.0.1');
var subscriber1 = redis.createClient('6379','127.0.0.1');
var subscriber2 = redis.createClient('6379','127.0.0.1');
// First subscriber listens only to events occurring for key mykey
function S1(next) {
subscriber1.on('message', function(channel, msg) {
console.log( "S1: received on "+channel+" event "+msg )
});
subscriber1.subscribe( "[email protected]__:mykey", function (err) {
next();
});
}
// Second subscriber listens to events occuring for ALL keys
function S2(next) {
subscriber2.on('pmessage', function(pattern,channel, msg) {
console.log( "S2: received on "+channel+" event "+msg )
});
subscriber2.psubscribe( "[email protected]__:*", function (err) {
next();
});
}
// Do something with keys mykey and anotherkey
function do_something() {
client.set("mykey","example", function( err ) {
client.set("mykey", "another example", function( err ) {
client.del("mykey", function( err ) {
client.set("anotherkey","example", function( err ) {
client.del("anotherkey");
});
});
});
});
}
// Here we go
S1( function () {
S2( function () {
do_something();
});
});
इस स्क्रिप्ट का परिणाम है:
S1: received on [email protected]__:mykey event set
S2: received on [email protected]__:mykey event set
S2: received on [email protected]__:mykey event set
S1: received on [email protected]__:mykey event set
S1: received on [email protected]__:mykey event del
S2: received on [email protected]__:mykey event del
S2: received on [email protected]__:anotherkey event set
S2: received on [email protected]__:anotherkey event del
आप देख सकते हैं कि पहले ग्राहक को केवल mykey के लिए ईवेंट प्राप्त हुए, जबकि दूसरे ग्राहक को सभी कुंजियों के लिए ईवेंट प्राप्त हुए।