Open
Description
Is there an existing issue for this?
- I have searched the existing issues
Current behavior
@WebSocketServer
decorator returns a Namespace (socket.io) instead of Server (socket.io) when @WebSocketGateway
is called with namespace option set. Without the namespace option, it returns a Server, as expected.
@WebSocketGateway()
export class AppGateway {
@WebSocketServer()
server: Server;
@SubscribeMessage('server')
handleServer() {
return this.server instanceof Server; // true, as expected
}
}
@WebSocketGateway({ namespace: 'foo' })
export class FooGateway {
@WebSocketServer()
server: Server;
@SubscribeMessage('server')
handleServer() {
return this.server instanceof Server; // false, not as expected
}
}
Minimum reproduction code
https://github.com/bryanrp/nestjs-issue-websocket
Steps to reproduce
npm install
npm run test:e2e
Expected behavior
All tests are expected to pass. The failed test shows that @WebSocketServer
does not return a Server (socket.io) object.
Package
- I don't know. Or some 3rd-party package
-
@nestjs/common
-
@nestjs/core
-
@nestjs/microservices
-
@nestjs/platform-express
-
@nestjs/platform-fastify
-
@nestjs/platform-socket.io
-
@nestjs/platform-ws
-
@nestjs/testing
-
@nestjs/websockets
- Other (see below)
Other package
No response
NestJS version
^10.0.0
Packages versions
"dependencies": {
"@nestjs/common": "^10.0.0",
"@nestjs/core": "^10.0.0",
"@nestjs/platform-express": "^10.0.0",
"@nestjs/platform-socket.io": "^10.3.0",
"@nestjs/websockets": "^10.3.0",
"reflect-metadata": "^0.1.13",
"rxjs": "^7.8.1",
"socket.io": "^4.7.2"
},
"devDependencies": {
"@nestjs/cli": "^10.0.0",
"@nestjs/schematics": "^10.0.0",
"@nestjs/testing": "^10.0.0",
"@types/express": "^4.17.17",
"@types/jest": "^29.5.2",
"@types/node": "^20.3.1",
"@types/supertest": "^2.0.12",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"eslint": "^8.42.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-prettier": "^5.0.0",
"jest": "^29.5.0",
"prettier": "^3.0.0",
"socket.io-client": "^4.7.2",
"source-map-support": "^0.5.21",
"supertest": "^6.3.3",
"ts-jest": "^29.1.0",
"ts-loader": "^9.4.3",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.1.3"
},
Node.js version
18.17.0
In which operating systems have you tested?
- macOS
- Windows
- Linux
Other
No response