簡體   English   中英

Connect-redis存儲不適用於socket.io

[英]Connect-redis store don't work with socket.io

對於使用connect-redis的人,我有一個簡單的問題。

我想在socket.io中使用它與函數io.set('store', something) 當我這樣做時,我不知道為什么

var RedisSessionStore = require('connect-redis')(express);
var sessionStore = new RedisSessionStore();

app.use(express.session({
  secret: 'some totally secret key',
  cookie: {
    maxAge: 1000 * 60 * 60
  },
  store: sessionStore
}));

//and then I wan't to use the session store for socket.io
io.set('store', sessionStore);

它說Object #<RedisStore> has no method 'subscribe'

connect-redis是Redis支持的Connect / Express會話存儲,但它與socket.io使用的“存儲協議”不兼容。

相反,您需要使用socket.io附帶的Redis存儲實現:

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

docs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM