我在网上研究了这个话题,并发现了与此类似的问题,但是,我需要知道为什么在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
复制相似问题