ЧатМодуль есть ЧатГейтвей и ЧатСервис.
ЧатГейтвей и ЧатСервис прокидываются в провайдеры + ЧатСервис юзает ЧатГейтвей, что создаёт циклическую зависимость.
Теперь, если использовать ЧатСервис в ЮзерСервис, nestjs требует добавить ЧатГейтвей в провайдеры, что недопустимо, т.к. создастся второй экземпляр это класса, а в нём находится веб-сокет, соответственно, веб-сокет второй раз поднимется.
Для решения этого приходится юзать forwardRef в ЮзерСервисе и, соответственно, в других сервисах, где будет юзаться ЧатСервис (для доступа к тому же сокету).
В документации это описано "нежелательным" и чатгпт говорит, что это костыль.
Вопрос: как можно решить данную циклическую зависимость на уровне архитектуры приложения?
Можешь код показать?
https://t.me/nest_ru/165448
Обсуждают сегодня