【发布时间】:2021-06-10 15:16:08
【问题描述】:
首先,抱歉语法错误,英语不是我的母语。
我只是想将 Redis 与 NestJS 一起使用,并为它创建了一个适配器。如果我说我直接从 NestJS 自己的示例中获取代码会更合适。这是我的 Redis 客户端:
import Redis from "ioredis";
import { CONFIG } from "src/config";
export const redis = new Redis(CONFIG.REDIS_URL);
这是适配器:
import { IoAdapter } from "@nestjs/platform-socket.io";
import { createAdapter } from "socket.io-redis";
import { redis } from "./redis";
import { ServerOptions } from "socket.io";
export class RedisIoAdapter extends IoAdapter {
createIOServer(port: number, options?: ServerOptions): any {
const server = super.createIOServer(port, options);
const pubClient = redis;
const subClient = redis.duplicate();
const redisAdapter = createAdapter({
pubClient,
subClient,
});
server.adapter(redisAdapter);
return server;
}
}
但是当我尝试在我的应用程序上使用它时,它会说
app.useWebSocketAdapter(new RedisIoAdapter(app));
Argument of type 'RedisIoAdapter' is not assignable to parameter of type 'WebSocketAdapter<any, any, any>'. Type 'RedisIoAdapter' is missing the following properties from type 'WebSocketAdapter<any, any, any>': bindClientConnect, close
感谢您的所有帮助:3
【问题讨论】:
标签: javascript typescript redis socket.io nestjs