一尘不染

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

redis

因此,我将节点应用程序从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
}));

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

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

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

另外,我一直在使用他们的迁移指南作为参考,但是没有提到如何配置RedisStore的特定更改。

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


阅读 298

收藏
2020-06-20

共1个答案

一尘不染

万一其他人遇到和我一样的麻烦,这就是我如何使其再次工作。

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

npm install socket.io-redis --save

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

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

io.adapter(redis({
    host: 'localhost',
    port: 6379
}))

而已!

参考链接:

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

2020-06-20