使用相同的redis.createClient()实例进行发布和订阅

udi*_*idu 3 redis node.js socket.io

我正在使用redis在socket.io客户端之间发布和订阅消息,当客户端连接到服务器时(io.sockets.on('connection', function(socket){...});)我正在使用创建subscribe变量redis.createClient()然后使用subscribe函数来订阅客户端到通道.

我的问题是它是否有权使用相同的订阅变量来执行发布操作?或者redis.createClient()为发布消息创建另一个实例很重要,所以我将有2个实例,一个用于发布,一个用于订阅...

谢谢

Mic*_*ley 11

来自Redis文档:

一旦客户端进入订阅状态,除了额外的SUBSCRIBE,PSUBSCRIBE,UNSUBSCRIBE和PUNSUBSCRIBE命令之外,它不应该发出任何其他命令.

因此,您需要两个客户端,一个用于订阅,一个用于发布(可能还有其他命令).