我在网上研究了这个话题,并发现了与此类似的问题,但是,我需要知道为什么在NestJS中我们必须使用两个包来实现WebSocket通信。
两个包裹是,
我知道WebSocket是协议,Socket.IO是一个库,它既有服务器版本,也有客户端版本。
在NestJS的网关文件中,当实现WebSocket连接时,必须编写类似于下面的代码。
import {
ConnectedSocket,
MessageBody,
OnGatewayConnection,
OnGatewayDisconnect,
SubscribeMessage,
WebSocketGateway,
WebSocketServer,
} from '@nestjs/websockets';
import { Server } from 'socket.io';我的问题
WebSocketServer和Server在这里有什么区别?为什么我们从@nestjs/platform-socket.io而不是从socket.io导入Server?
发布于 2022-08-12 21:06:43
@nestjs/websockets是使websocket在NestJS中集成成为可能的基本包。@nestjs/platform-socket.io是用于socket.io集成的特定包,而不是用于ws包的@nestjs/platform-ws。
WebsocketServer是告诉Nest注入websocket服务器的装饰器,Server是服务器的socket.io类型。
我们从Socket中导入socket.io,因为@nestjs/platform-socket.io实际上只是用于插入Nest平台的websocket适配器。
单句:
@nestjs/websockets:允许通过websocket adapter@nestjs/platform-socket.io:socket.io websocket适配器进行websocket通信,以允许socket.io websocket与serversocket.io:进行通信,这是一个与NestJS一起使用的websocket实现和引擎。
https://stackoverflow.com/questions/73339762
复制相似问题