首页 > 其他 > 详细

redis实现发布和订阅

时间:2020-02-06 21:47:02      阅读:80      评论:0      收藏:0      [点我收藏+]

redis实现发布和订阅

示例

publish.js

// 引入redis
let redis = require("redis");
// 创建连接
let client = redis.createClient(6379, "127.0.0.1");

client.on("ready", function () {
    //订阅消息
    client.subscribe("chatB");
});
// 失败处理
client.on("error", function (error) {
    console.log("Redis Error " + error);
});

//监听订阅成功事件
client.on("subscribe", function (channel, data) {
    console.log("client subscribed to " + channel + ",data:" + data);
});
//收到消息后执行回调,message是redis发布的消息
client.on("message", function (channel, message) {
    console.log("我接收到信息了" + message);
});
//监听取消订阅事件
client.on("unsubscribe", function (channel, count) {
    console.log("client unsubscribed from" + channel + ", " + count + " total subscriptions")
});


function zadd(channel, data) {
    client.publish("chatA", data);//client将member发布到chat这个频道
    //然后订阅这个频道的订阅者就会收到消息
}
for (let i = 0; i < 10; i++) {
    zadd("z", "" + i);//发布10次
}

readRedis.js

let redis = require("redis");  
let client = redis.createClient(6379, "127.0.0.1");  

//客户端连接redis成功后执行回调
client.on("ready", function () {
    //订阅消息
    client.subscribe("chatA");
});
// 失败处理
client.on("error", function (error) {
    console.log("Redis Error " + error);
});

//监听订阅成功事件
client.on("subscribe", function (channel, data) {
    console.log("client subscribed to " + channel + ",data:" + data);
});
//收到消息后执行回调,message是redis发布的消息
client.on("message", function (channel, message) {
    console.log("我接收到信息了" + message);
});
//监听取消订阅事件
client.on("unsubscribe", function (channel, count) {
    console.log("client unsubscribed from" + channel + ", " + count + " total subscriptions")
});

先执行readRedis.js,后执行publish.js,readRedis.js的控制台输出:

我接收到信息了0
我接收到信息了1
我接收到信息了2
我接收到信息了3
我接收到信息了4
我接收到信息了5
我接收到信息了6
我接收到信息了7
我接收到信息了8
我接收到信息了9

每个文件都可以监听和发布消息。

redis实现发布和订阅

原文:https://www.cnblogs.com/mengfangui/p/12270081.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!