2014-07-10 51 views
0

我刚刚更新了socket.io到版本1.0.6,发现在socket.io/node_modules下不再有redis。nodejs和socket.io-redis(socket.io 1.0.6):如何重新订阅?

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

但是,随着最后一个版本,我曾经对我的应用程序下面的代码。 JS:

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

有了这项新措施,正在运行的节点app.js引发错误:它抱怨说,Redis的没有createClient方法。

我应该如何使用socket.io(1.0.6)和socket.io-redis进行订阅?

回答

0

除了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})); 
+0

嗨Aruna,请你稍后详细介绍一下如何在后面的代码中使用这些pub和sub对象? 您是否有任何示例代码或任何参考,因为查看'socket.io-redis'库的文档,我不能有任何清晰的想法。 – Shivam

+0

嗨Shivam,两年来我还没有使用socket.io。所以我只是模糊地记得一切都是如何加起来的。但是如果我没有记错的话,你不必使用那些pub sub客户端,因为它们在redis适配器的内部使用。所以你不必担心它们。 –

+0

是的,非常感谢。尽管通过查看库的代码,我已经知道了。 – Shivam