NestJS 学习 —— 网关 Gateway

category
Web
date
Apr 10, 2023
icon
slug
nestjs-gateway
status
Published
summary
本文档中其他地方讨论的大多数概念,如依赖注入、装饰器、异常过滤器、管道、守卫和拦截器,都同样适用于网关。只要有可能,Nest将抽象实现细节,以便相同的组件可以跨基于 http 的平台、WebSockets 和微服务运行。本节将介绍 WebSockets 在 Nest 中的应用。
tags
NestJS
type
Post

网关

本文档中其他地方讨论的大多数概念,如依赖注入、装饰器、异常过滤器、管道、守卫和拦截器,都同样适用于网关。只要有可能,Nest将抽象实现细节,以便相同的组件可以跨基于 http 的平台、WebSockets 和微服务运行。本节将介绍 WebSockets 在 Nest 中的应用。
在 Nest 中,网关只是一个用 @WebSocketGateway() 装饰器注解的类。从技术上讲,网关与平台无关,这使得它们在创建适配器之后就可以与任何 WebSockets 库兼容。有两个开箱即用的WS平台:socket.io和ws。你可以选择最适合你需要的。另外,您可以按照本指南构建自己的适配器。
notion image
网关可以被看作是provider,这意味着它可以毫不费力地通过构造函数注入依赖关系。另外,网关也可以由其他类(提供者和控制器)注入。

创建项目

安装

使用

ws.gateway.ts
需要注意:
  • ws端口号不能和http端口号一样,否则会冲突。WebSocketGateway(port)写端口号
  • SubscribeMessage里面的字符串代表类型,就是send event的值
app.modules.ts中添加到providers
main.ts

前端使用

index.html
注意:
  • ws.send() 参数是string,需要JSON.stringify。event的值要和SubscribeMessage值保持一致
 

参考链接

  1. nestjs中使用ws - 掘金 (juejin.cn)
 

© JinSo 2021 - 2026