【问题标题】:nodejs and socket.io-redis (socket.io 1.0.6): how to redis subscribe?nodejs 和 socket.io-redis (socket.io 1.0.6):如何订阅 redis?
【发布时间】:2014-07-10 09:59:06
【问题描述】:

刚刚将socket.io更新到1.0.6版本,发现socket.io/node_modules下已经没有redis了。

所以,我 npm 安装了 socket.io-redis,因为这个线程说这是正确的解决方案: Migrating socket.io from 0.9.x to 1.x, Problems with configuring RedisStore

但是,在上一个版本中,我的 app.js 上曾经有以下代码:

var redis = require('socket.io/node_modules/redis');
var sub = redis.createClient();

使用这种新方法,运行 node app.js 会引发错误:它抱怨 redis 没有 createClient 方法。

如何使用socket.io (1.0.6) 和socket.io-redis 订阅?

【问题讨论】:

    标签: node.js sockets node-redis socket.io-1.0


    【解决方案1】:

    除了socket.io-redis 之外,您还应该导入redis 模块。

    var redisAdapter = require('socket.io-redis');
    var redis = require('redis');
    
    var pub = redis.createClient(port, host);
    var sub = redis.createClient(port, host);
    
    io.adapter( redisAdapter({pubClient: pub, subClient: sub}) );
    

    【讨论】:

    • 嗨 Aruna,您能否进一步指导我以后如何在我的代码中使用这些 pub 和 sub 对象?您是否有任何示例代码或任何参考,因为查看“socket.io-redis”库的文档,我无法有任何明确的想法。
    • 嗨 Shivam,我已经两年多没有使用 socket.io 了。所以我只模糊地记得一切是如何加起来的。但是,如果我没记错的话,您不必使用那些 pub 子客户端,因为它们是由 redis 适配器在内部使用的。所以你不必担心它们。
    • 是的,非常感谢。我通过稍微研究一下库的代码就知道了。
    猜你喜欢
    • 1970-01-01
    • 2014-06-06
    • 2017-09-15
    • 1970-01-01
    • 2011-12-20
    • 2012-10-23
    • 2012-09-17
    • 2017-05-30
    • 2016-05-25
    相关资源
    最近更新 更多