首页 > 解决方案 > 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 框架的情况下,我如何编写一个“永远”保持活动状态的服务器?

标签: node.jsredispublish-subscribe

解决方案


我使用了上面的确切代码,并且该过程保持打开状态。在上面的代码中,您没有发布任何消息,因此您只会看到“订阅...”和“完成”打印到终端。

此外,如前所述,您也没有订阅该频道。


推荐阅读