Сервер Nestjs не обслуживает клиента socket.io - PullRequest
0 голосов
/ 04 мая 2019

У меня есть разделенное приложение, использующее nestjs на сервере и Angular приложение в качестве клиента. Настройка websockets с помощью socket.io выглядела довольно легко с помощью модуля @nestjs/websockets, а на клиенте я использовал ngx-socket-io. Я использовал это репо в качестве основы. Теперь, когда я обновляю @nestjs/websockets зависимость проекта до последней версии, я получаю

  • Ошибки CORS и
  • ошибка, из-за которой клиент не смог загрузить js-файл socket.io client http://localhost:3000/socket.io/?EIO=3&transport=polling&t=Mg48H4P

Я ожидал проблем с CORS, и после обновления я мог бы их исправить, добавив

  app.enableCors({
    origin: 'http://localhost:4200',
    credentials: true,
  });

к моему main.ts файлу, но я не знаю, почему файл клиента не обслуживается. В версии репозитория (5.7.x) нет ошибок CORS и проблем с обслуживанием файла.

Я попробовал пару настроек @WebSocketGateway(), переместившись на другой порт, установив serveClient (хотя это должно быть true по умолчанию), но ничего не получалось. Любой совет?

спасибо

1 Ответ

0 голосов
/ 10 мая 2019

Проблема заключалась в том, что nestjs отделил платформу нижнего уровня (socket.io, express, fastify, ...) от модулей nestjs.Модуль websocket требует установки базовой платформы, для socket.io

npm install --save @nestjs/platform-socket.io

Для обслуживания клиентского файла socket.io, похоже, также должна быть установлена ​​платформа HTTP,для экспресс

npm install --save @nestjs/platform-express

Дополнительная информация содержится в руководстве по миграции для v6.

...