NodeJS 服务器没有用于 Redis 订阅的 http
NodeJS server no http for Redis subscription
我想开发一个进程,只订阅一个 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 框架的情况下编写一个保持活动状态的服务器 "forever"?
我使用了上面的确切代码并且进程保持打开状态。在上面的代码中,您没有发布任何消息,因此您只会看到 "subscribing..." 和 "done" 打印到终端。
此外,如前所述,您也没有订阅该频道。
您没有订阅频道:
sub.subscribe('channel');
我想开发一个进程,只订阅一个 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 框架的情况下编写一个保持活动状态的服务器 "forever"?
我使用了上面的确切代码并且进程保持打开状态。在上面的代码中,您没有发布任何消息,因此您只会看到 "subscribing..." 和 "done" 打印到终端。
此外,如前所述,您也没有订阅该频道。
您没有订阅频道:
sub.subscribe('channel');