node.js – 使用nodejs和redis发布订阅(node_redis)

我正在尝试构建一个带有nodejs和node_redis的通用发布/订阅服务器,它接收来自具有通道名称的浏览器的请求,并响应任何已发布该通道的数据.为此,我使用来自浏览器的长轮询请求,并在通道上收到消息时发送响应来处理这些请求.

对于每个新请求,都会创建一个用于订阅该频道的对象(当且仅当它尚不存在时).

clients = {};

//when request comes in,
clients[channel] = redis.createClient();
clients[channel].subscribe(channel);

这是处理订阅频道的最佳方式,还是有其他更直观的方式?

这对我来说似乎是一个非常合理的解决方案.你不喜欢什么?

需要记住的是,您可以在每个Redis连接上拥有多个订阅.这可能最终使您的逻辑变得复杂,这与您要求的相反.但是,在规模上这可能是必要的.每个Redis连接都相对便宜,但它确实需要文件描述符和一些内存.

相关文章
相关标签/搜索