Rozwiązałem to, przekazując sam moduł redis jako opcję do konstruktora RedisStore.
io.set('store', new RedisStore({redis: redis, redisPub: redisClient, redisSub: redisSubscriber, redisClient: redisClient }));
Było to konieczne, aby obiekty klienta przeszły instanceof RedisClient
przetestować i nie być ponownie inicjalizowany bez hasła. Najwyraźniej, gdy RedisStore
ponownie wymaga modułu redis, klienci redis utworzeni za pomocą createClient
method są członkami jakiejś nowej klasy lub czegoś takiego.
Doszedłem do tego, patrząc na pokrewny problem, który ktoś miał w sprawie Socket.io nr 808.