小编Rin*_*ieR的帖子

如何在 NestJS 服务/控制器上使用套接字网关?

我正在开发一个 NestJS 整体应用程序,在不久的将来,我们会将其分解为微服务,但现在一切都在同一个项目上。

我有一些用于数据库增删改查操作的 REST API,现在,我正在开发一项新功能,该功能将通过 websocket 连接从前端接收有效负载,然后在特定服务器上调用一些方法。

现在,我是套接字的新手,也是 Nest 的初学者,所以这可能是一个明显而愚蠢的问题

我正在关注 Nest 的文档:https://docs.nestjs.com/websockets/gateways,但我不确定如何将其中的一些应用到现实生活中的应用程序中。我socket.gateway.ts有一个handleConnection方法sendMessage,但我需要一些关于监听新事件的建议。现在,我接收消息的唯一方法是使用类@SubscribeMessage中的方法.gateway.ts。但这样一来,我的网关必须注入需要接收套接字连接有效负载的每个服务,因此我需要在网关内为每个“操作”使用一个新方法,就像我在控制器上使用 REST 端点一样。

所以,这是我的问题:

  1. 遵循最佳实践,我应该如何在其他服务中接收事件负载?我应该将网关视为“某种”控制器吗?就像我需要接收有效负载的每个“端点”(事件)的方法一样?
  2. 如果问题一是正确的,我是否应该为每个服务都有一个新的网关(例如 UserService 的 1 个网关,AppService 的另一个网关,MessageService 的另一个网关,就像控制器一样)?
  3. 另外,作为一个额外的问题...我的后端 URL 是https://example.com/service-name/example,该地址无法通过我的前端调用...它尝试访问 example.com,而不是完整的 URL ,我缺少什么?

另外:我并没有坚持使用 Nest socket.io lib,我可以使用另一个库,但我确实更喜欢继续使用 Nest 的本机库,因为这不仅仅是我的决定,所以......

编辑:我意识到我关于“不同服务”的问题实际上可能更好地解释为“不同域”。

design-patterns websocket node.js socket.io nestjs

7
推荐指数
0
解决办法
2807
查看次数

如何为微服务创建NestJS全局异常过滤器?

我刚刚制作了一个全局异常过滤器,看起来与 Nest 文档上的完全一样: https: //docs.nestjs.com/exception-filters

它捕获了除了 Nest 生命周期之外的所有内容,所以我想知道,如何为该过滤器未捕获的异常创建一个全局过滤器,例如 Nest 的微服务(kafka 传输)事件?

node.js typescript nestjs

5
推荐指数
1
解决办法
669
查看次数

如何通过 Nest-commander 创建和使用终端命令?

所以,我有这个 NestJS 项目,出于学习目的,我想使用Nest-commander创建一个可以在终端上执行的命令(这样我可以从其他服务调用函数),也出于学习目的,每当我调用它时命令,它应该调用服务文件上的函数,从数据库中获取用户。

它看起来像这样:

> run myCommand -username UsernameString
Run Code Online (Sandbox Code Playgroud)

每当从终端调用该命令时,我都会调用getUser()fromAnotherService来查找具有特定 UsernameString 的用户。我阅读了文档,但无法理解其中的内容,所以......

  1. 如何从终端调用命令?
  2. 是否可以在应用程序中调用相同的命令?

javascript node.js typescript node-commander nestjs

0
推荐指数
1
解决办法
6086
查看次数