Подписка Graphql на игровой площадке во время локальной разработки выдает «Не удалось подключиться к конечной точке веб-сокета» в базовом проекте nestjs

Это происходит в простом проекте во время локальной разработки, поэтому облачная инфраструктура не является проблемой.

Это также происходит на игровой площадке приложений.

Регистрация моего модуля:

    GraphQLModule.forRootAsync<ApolloDriverConfig>({
      driver: ApolloDriver,
      imports: [YeoConfigModule],
      useFactory: (configService: YeoConfigService<AppConfig>) => {
        const config: ApolloDriverConfig = {
          debug: true,
          subscriptions: {
            'graphql-ws': true,
          },
          playground: true,
          autoSchemaFile: './apps/event-service/schema.gql',
          sortSchema: true,
          context: ({ req, res }) => ({ req, res }),
        };
        const origins = configService.get('CORS_ORIGINS')();
        config.cors = { origin: origins, credentials: true };
        //    config.path = '/apis/event-service/graphql';
        return config;
      },
      inject: [YeoConfigService],

Мой запуск приложения:

async function bootstrap(): Promise<void> {
  const app = await getApp();
  await app.listen(process.env.PORT ?? 3600);
}

bootstrap();

Мои версии:

    "graphql-ws": "5.11.2",
    "graphql-redis-subscriptions": "2.5.0"
    "@apollo/gateway": "2.1.3",
    "@nestjs/graphql": "10.1.3",
    "graphql": "16.5.0",

Результат:

{
  "error": "Could not connect to websocket endpoint ws://localhost:3600/graphql. Please check if the endpoint url is correct."
}

Любые идеи, почему это не работает должным образом? Я читал документацию по nestjs по адресу https://docs.nestjs.com/graphql/subscriptions, но ничего не могу найти о дополнительных настройках, кроме добавления

          subscriptions: {
            'graphql-ws': true,
          },

при регистрации модуля graphql.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
0
0
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для всех, кто наткнулся на это, я начал использовать altair, который позволяет мне указать конечную точку ws, а также тип соединения, среди которых есть опция graphql-ws.

Так что я пошел с ним.

Если кто-нибудь знает, как добиться этого, используя игровую площадку, упомянутую в исходном ответе, с удовольствием отметим этот ответ как правильный, а не мой.

Другие вопросы по теме