import { INestApplicationContext } from '@nestjs/common'; import { IoAdapter } from '@nestjs/platform-socket.io'; import { createAdapter } from '@socket.io/postgres-adapter'; import { ServerOptions } from 'socket.io'; import { DataSource } from 'typeorm'; import { PostgresDriver } from 'typeorm/driver/postgres/PostgresDriver.js'; export class WebSocketAdapter extends IoAdapter { constructor(private app: INestApplicationContext) { super(app); } createIOServer(port: number, options?: ServerOptions): any { const server = super.createIOServer(port, options); const pool = (this.app.get(DataSource).driver as PostgresDriver).master; server.adapter(createAdapter(pool)); return server; } }