问题标签 [nestjs-gateways]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
45 浏览

nestjs - NestJS 阿波罗网关错误

Apollo GraphQL 网关模块中似乎有一个错误

我正在尝试使用以下文档 https://docs.nestjs.com/graphql/federation#sharing-context进行 PoC

使用命令“npm run dev”时出现以下错误。

让我知道解决方案......我使用 NodeJS 16.x 和 NestJS 8.1.2

0 投票
0 回答
33 浏览

graphql - NestJS GraphQL> 不一致的 transformSchema 和 schemaTransforms 不起作用

我将nestJS 与3 个微服务一起使用,然后使用graphQL 联合来提供单个graphQL 端点。当前的问题是每个微服务都暴露了所有对象类型,甚至是不属于该微服务的对象类型。我想使用模式转换过滤掉类型定义。我只有部分工作。

所以在上面的例子中会发生以下情况:

  • 当 Playground 直接从微服务查询架构时,架构不包含用户类型
  • schema.gql 文件仍然包含用户类型。
  • nestJs 网关在 grapgql 端点上调用以下内容{"query": "query __ApolloGetServiceDefinition__ { _service { sdl } }"},并且仍然包含 User 类型

最好有一种方法可以始终如一地转换模式。有谁知道这样做的方法?

0 投票
0 回答
11 浏览

websocket - 如何在带有组/主题的 NestJs 应用程序中使用套接字?

在 NestJs 后端,我想添加一些功能 websocket 功能。

我已经在 NestJs 中找到了一些关于 websocket 的教程(例如https://gabrieltanner.org/blog/nestjs-realtime-chat),并且我了解其中的要点。

但我想要“群组”或集线器,或者....我想要这样的 websocket 功能:当有人加入群组时广播,向该群组的成员广播消息,......

但我不明白我怎么会有这样的行为。

这是网关定义的示例之一:

我需要什么相同但仅适用于给定组的人(假设它是用 URL 中的 ID 标识的)。

只是一个精度:我知道我可以在每条消息中添加这个组的“Id”。但这意味着客户端将收到所有其他组的所有消息(大量无用流量,可能是他们不应该访问的数据)

0 投票
0 回答
41 浏览

authentication - 如何在 NestJs 网关(网络套接字)中使用守卫?

在我的 NestJS API 中,我是 JWT 令牌,存储在 cookie 中以验证我的用户。

用户将不得不调用我的登录控制器:

验证用户名密码并用LocalAuthenticatedGuard用户填写请求,然后将 cookie 提供给客户端,并将与我的其他警卫针对任何进一步的请求进行验证:

及其相关策略:

这非常适合我的 post/get 方法。

但是现在我对网络套接字有一些需求,所以我尝试了以下方法:

但:

  1. 即使我没有连接,连接也会建立
  2. 用户未设置为我的请求

会是什么:

  1. 使用我的身份验证保护并接收匹配用户的方式?
  2. 对于进一步的消息,我是否应该在网关中保留一个 client.id <--> 我的用户的字典?或者有没有办法在每条消息中也接收用户?
0 投票
0 回答
17 浏览

socket.io - 在 Nestjs 生产模式下连接到 WebSocketGateway 服务器的正确方法是什么?

我的nestjs WebSocketGateway 服务器在开发模式下运行良好,但在生产模式下我可以看到那些试图连接但服务器引发以下异常的客户端2022-02-08T08:33:33.901Z undefined ERROR No exports found in module "../dist/main.js". 2022-02-08T08:33:33.901Z undefined ERROR Did you forget to export a function or a server? RequestId: 9186e127-dbdd-4a1a-988c-dbfa0521b37c Error: Runtime exited with error: exit status 1 Runtime.ExitError

这是我的代码 import { SubscribeMessage, WebSocketGateway, WebSocketServer, } from '@nestjs/websockets'; import { Server } from 'socket.io'; @WebSocketGateway({ transports: ['websocket', 'polling'], cors: { origin: '*', methods: ['GET', 'POST'], } }) export class EventsGateway { @WebSocketServer() server: Server;

和我的模块在这里

然后是我的 main.ts

这里是服务器端点 const ENDPOINT 'https://backendsejour.vercel.app/'; 以及我如何使用它来连接它,它可以在本地工作,但生产不能导出 const socket = socketIOClient(ENDPOINT);