Tôi đã giải quyết điều này bằng cách chuyển chính mô-đun redis như một tùy chọn cho phương thức khởi tạo RedisStore.
io.set('store', new RedisStore({redis: redis, redisPub: redisClient, redisSub: redisSubscriber, redisClient: redisClient }));
Điều này là cần thiết để các đối tượng khách truyền instanceof RedisClient
kiểm tra và không được khởi tạo lại nếu không có mật khẩu. Rõ ràng, khi RedisStore
yêu cầu lại mô-đun redis, các ứng dụng khách redis được tạo bằng createClient
phương thức là thành viên của một số lớp mới hoặc thứ gì đó.
Tôi đã tìm ra điều này bằng cách xem xét một vấn đề liên quan mà ai đó đang gặp phải trong vấn đề số 808 của socket.io.