node.js+redis+express 实现发布订阅功能
2017-11-09 16:09
761 查看
var redis = require('redis'); var express = require('express'); var app = express(); //这里建立了三个redis的客户端,为什么是3个呢? //一个是发布,一个是订阅,一个是处理正常的req,res //本来是想用订阅的client来处理的req,res,但是却报错 //后来查了以后才知道,原来如果此客户端订阅就不能下CRUD命令 var clientSub = redis.createClient(6379, 'localhost'); var clientPub = redis.createClient(6379, 'localhost'); var clientRes = redis.createClient(6379, 'localhost'); clientRes.on('ready', function(err){ console.log('hello, i handle req/res'); }); clientPub.on('ready', function (err) { console.log('hello, i publish'); }); clientSub.on('ready', function (err) { console.log('hello, i subscribe'); }); clientSub.subscribe('channel1'); //订阅channel1 clientSub.on('subscribe', function (channel, count) { console.log(`got subscribe event: ${channel} and count is ${count}`); setInterval(()=>{ clientPub.publish('channel1', `hi, i am channel one, message at ${new Date()}`); }, 2000); //每2秒钟发个消息 }); clientSub.on('connect', function () { clientSub.on('message', function (channel, message) { var response = `received message from ${channel}:${message}`; //订阅客户端接收到消息 clientRes.lpush('myResponse', response,redis.print); //接收到消息以后,由req/res客户端来存储消息 }); }); app.get('/', function (req, res) { clientRes.lrange('myResponse',0,-1, function(err, result){ res.send(result);//拿出所有消息发到浏览器 }) }) app.listen(1338, function () { console.log('App listening on port 1338!'); });
相关文章推荐
- nodejs redis 发布订阅机制封装实现方法及实例代码
- nodejs+express+websocket+redis实现消息订阅系统
- python 实现redis订阅发布功能
- Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)
- Node.js+Express+MySql实现用户登录注册功能
- 基于nodejs+express(4.x+)实现文件上传功能
- nodejs express wechat 实现微信消息功能
- Node.js操作redis实现添加查询功能
- 使用nodejs+socket.io+redis订阅发布完成竞拍的过程
- 使用nodejs+express实现简单的文件上传功能
- node.js+express 实现CSDN上传头像功能 (包含图片的缩放,生成头像缩略图)
- Node.js+Express+MongoDB实现简单登录注册功能
- Nodejs+express 实战,实现系统监控功能
- 基于nodejs+express(4.x+)实现文件上传功能
- node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
- Node.js + Express 实现上传文件功能(felixge/node-formidable)
- linux下使用hiredis异步API实现sub/pub消息订阅和发布的功能 标签: hiredishiredis异步APIhiredis事件处理redis消息订阅发布redis c接口 2016-
- Nodejs+express 实战,实现系统监控功能
- Java实现Redis的消息订阅和发布
- Express.js 3.0 发布,Node.js 的高性能封装