将socket.io从0.9.x迁移到1.x,configurationRedisStore出现问题

所以我正在将我的节点应用程序从socket.io 0.9.x迁移到1.x,并且在configurationRedisStore时遇到了问题。 我在使用0.9.x时已经有了这个工作,但我无法弄清楚如何使用1.x工作。 该文档似乎只适用于0.9.x. 以下是他们的文档中的相关部分,我遵循并使用旧版本:

var RedisStore = require('socket.io/lib/stores/redis') , redis = require('socket.io/node_modules/redis') , pub = redis.createClient() , sub = redis.createClient() , client = redis.createClient(); io.set('store', new RedisStore({ redisPub : pub , redisSub : sub , redisClient : client })); 

从我可以告诉问题似乎是这个部分:

 var RedisStore = require('socket.io/lib/stores/redis') , redis = require('socket.io/node_modules/redis') 

这些文件在socket.io模块中似乎不再存在。

另外,我一直在使用他们的迁移指南作为参考,但没有提到如何configurationRedisStore的具体变化。

任何帮助或想法将不胜感激。 谢谢!

如果有其他人遇到同样的问题,我就是这么做的。

首先你需要安装socket.io-redis模块:

 npm install socket.io-redis --save 

然后,从节点应用程序中,您需要将以前的套接字+与redis相关的configuration代码replace为以下内容:

 var redis = require('socket.io-redis') io.adapter(redis({ host: 'localhost', port: 6379 })) 

而已!

参考链接:

https://github.com/automattic/socket.io-redis

对于socket.io> 0.9这是通过使用socket.io-redis的io.adapter检查链接https://github.com/Automattic/socket.io-redis

 var redis = require('socket.io-redis') ; io.adapter(redis({ host: 'localhost', port: 6379 })) ; 

好。 据我所知,这个新版本的socket.io(1.0.6,具体)不再有socket.io/node_modules下的redis,对吧?

所以,解决方法是安装socket.io-redis并使用它。 但是,如果运行节点抱怨socket.io-redis没有任何createClient()方法,那么sub = redis.createClient()可以被重用。

另一方面,如果我select保持与socket.io 0.9.16(这是我到目前为止使用的),我得到的其他问题:客户端每20秒重新连接(看起来像是与xhr -轮询)。 而且我也无法find任何关于这个的东西,所以,这就是为什么我决定更新socket.io,由于某种原因,他们决定改变事物的地方。

任何人都可以帮助使socket.io-redis和nodejs再次工作(使用redis.createClient()或类似的东西)?