💡
原文中文,约1900字,阅读约需5分钟。
📝
内容提要
本文介绍了在Nest中使用socket.io等WebSocket库创建websocket服务的基本API,包括装饰类、配置对象、事件处理函数和发送消息等。同时提到了在http和websocket使用同一端口时需要注意的问题。
🎯
关键要点
- 在Nest中使用socket.io等WebSocket库创建websocket服务需要创建被@WebSocketGateway()装饰的类。
- WebSocket生命周期由三个固定名称的钩子函数控制:afterInit()、handleConnection()和handleDisconnect()。
- 使用socket.io创建服务器时需要进行相关配置,如跨域等。
- 在Nest中,只需将配置对象传入注解即可,支持设置websocket的端口。
- socket.io中最重要的是发送和接收事件消息,使用@SubscribeMessage()注解装饰事件处理函数。
- 要在Nest中使用socket.io发送消息,需要使用@WebSocketServer()注解修饰成员变量以获得服务器实例。
- WebSocket网关类类似于被@Injectable()的类,可以通过构造函数注入其它Service。
- 如果http和websocket使用同一端口,可能会发生跨域问题,解决办法是配置客户端只允许建立WebSocket连接或使用单独的端口。
➡️