node.js - NodeJS 服务器没有用于 Redis 订阅的 http
问题描述
我想开发一个只订阅 Redis 频道并保持活动状态以处理收到的消息的进程。
我写了以下代码:
var redis = require("redis");
var sub = redis.createClient({host: process.env.REDIS_HOST});
console.log('subscribing...')
sub.on('subscribe', () => console.log('subscribed'));
sub.on('message', (ch, msg) => console.log(`Received message on ${ch}:${msg}`));
console.log('done')
但显然它不起作用:启动时它会经过所有线路并死掉。我认为我不需要像 Express 这样的框架,因为我的流程不使用 http。
在不使用 http 框架的情况下,我如何编写一个“永远”保持活动状态的服务器?
解决方案
我使用了上面的确切代码,并且该过程保持打开状态。在上面的代码中,您没有发布任何消息,因此您只会看到“订阅...”和“完成”打印到终端。
此外,如前所述,您也没有订阅该频道。
推荐阅读
- reactjs - 将 create-react-app 部署到 Heroku 时出现“无法构建 WebSocket”错误
- mongodb - MongoDB:缩短数据库名称是否有任何性能收益?
- ios - Swift - 如何在设置后更改 UIButton 的 NSMutableAttributedString 的颜色
- python - Python string.strip() 表现出奇怪的行为
- android - Android Studio:强制选项卡呈现
- java - SwingWorker 没有从进程内部更新进度条
- r - 为什么我的逻辑回归模型输出的因子不是 2 个水平?(错误:`data`和`reference`应该是相同级别的因素。)
- javascript - jexcel清除和更新新数据
- excel - VBA 仅在当前工作表而不是整个工作簿上运行
- javascript - javascript 引用实例无法访问构造函数中的方法?