将socket.io从0.9.x迁移到1.x,配置RedisStore时出现问题

c.h*_*ill 5 redis node.js socket.io

所以我将我的节点应用程序从socket.io 0.9.x迁移到1.x,我遇到了配置RedisStore的问题.我在使用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
}));
Run Code Online (Sandbox Code Playgroud)

据我所知,问题似乎是这部分:

var RedisStore = require('socket.io/lib/stores/redis')
  , redis  = require('socket.io/node_modules/redis')
Run Code Online (Sandbox Code Playgroud)

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

此外,我一直在使用他们的迁移指南作为参考,但没有提及如何配置RedisStore的具体更改.

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

c.h*_*ill 6

如果其他人遇到了我所遇到的同样麻烦,这就是我如何重新开始工作的原因.

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

npm install socket.io-redis --save
Run Code Online (Sandbox Code Playgroud)

然后,从您的节点应用程序中,您需要使用以下内容替换以前的socket + redis相关配置代码:

var redis = require('socket.io-redis')

io.adapter(redis({
    host: 'localhost',
    port: 6379
}))
Run Code Online (Sandbox Code Playgroud)

而已!

参考链接:

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