Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Socket Gateway provide and error in nodes modules

I want to make a simple gateway in my project using websocket. I have an issue with NestJs when I want to make it.

enter image description here

import { 
    SubscribeMessage, 
    WebSocketGateway, 
    WebSocketServer, 
    OnGatewayDisconnect,
    ConnectedSocket,
} from '@nestjs/websockets';
import { Server } from 'socket.io';

@WebSocketGateway()
export class ChatGateway { //implements OnGatewayDisconnect {

    constructor() {}

    @WebSocketServer() server : Server;

}

enter image description here

import { Module } from '@nestjs/common';
import { ChatService } from './chat.service';
import { ChatGateway } from './chat.gateway';

@Module({
  providers: [
            ChatService,
            ChatGateway
        ]
})
export class ChatModule {}

And I got this error :

enter image description here

/Users/mlecherb/transcendance-1/backend/node_modules/@nestjs/websockets/gateway-metadata-explorer.js:13
            .getAllMethodNames(instancePrototype)
             ^
TypeError: this.metadataScanner.getAllMethodNames is not a function
    at GatewayMetadataExplorer.explore (/Users/mlecherb/transcendance-1/backend/node_modules/@nestjs/websockets/gateway-metadata-explorer.js:13:14)
    at WebSocketsController.subscribeToServerEvents (/Users/mlecherb/transcendance-1/backend/node_modules/@nestjs/websockets/web-sockets-controller.js:33:61)
    at WebSocketsController.connectGatewayToServer (/Users/mlecherb/transcendance-1/backend/node_modules/@nestjs/websockets/web-sockets-controller.js:30:14)
    at SocketModule.connectGatewayToServer (/Users/mlecherb/transcendance-1/backend/node_modules/@nestjs/websockets/socket-module.js:47:35)
    at /Users/mlecherb/transcendance-1/backend/node_modules/@nestjs/websockets/socket-module.js:36:38
    at IteratorWithOperators.forEach (/Users/mlecherb/transcendance-1/backend/node_modules/iterare/src/iterate.ts:202:13)
    at SocketModule.connectAllGateways (/Users/mlecherb/transcendance-1/backend/node_modules/@nestjs/websockets/socket-module.js:36:14)
    at /Users/mlecherb/transcendance-1/backend/node_modules/@nestjs/websockets/socket-module.js:31:61
    at ModulesContainer.forEach (<anonymous>)
    at SocketModule.register (/Users/mlecherb/transcendance-1/backend/node_modules/@nestjs/websockets/socket-module.js:31:17)

Does anyone have an idea ?

Thanks

I already tried to make it the shortest possible, I have download all the package necessary.

like image 299
Mathieu Lecherbonnier Avatar asked Nov 01 '25 08:11

Mathieu Lecherbonnier


2 Answers

try to use this version "@nestjs/platform-socket.io": "9.2.1", "@nestjs/websockets": "9.2.1",

like image 167
Felipe Resende Avatar answered Nov 04 '25 06:11

Felipe Resende


  • delete node_modules
  • delete pack-lock.json
  • then install the packages using npm i --legacy-peer-deps this resolved my issue same as yours
like image 33
Muhammad Umar Abdullah Avatar answered Nov 04 '25 07:11

Muhammad Umar Abdullah