-
Notifications
You must be signed in to change notification settings - Fork 2k
Closed
Labels
@bryanrp
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