본문 바로가기

카테고리 없음

[NestJs] Service에서 Gateway 소켓을 사용하고 싶나요?

먼저, 게이트웨이에서도 서비스를 사용 할 수 있어야하고,

또한 Service에서도 Gateway의 server를 사용해야한다면 어떻게 해야할까요?

아래는 실제 저의 프로젝트의 코드중 일부를 보여드리고 있습니다.

 


Gateway코드

위 Gateway를 보면 클래스에서 socket server를 member변수로 가지고 있고,
"now-play-schedule"이벤트를 구독하고 있고, 그 이벤트를 받으면,
service의 sendNowPlaySchedule 메서드를 실행 하고 있습니다.


Service 코드

그리고 Service에서는 다음과 같이 sendNowPlaySchedule 메서드를 보시면
Gateway의 server 멤버 변수를 가져와 소켓 이벤트를 보내고있습니다.


 

 

위 코드를 보면 양 방향으로 양계층에서 소켓 서버를 사용하고 있습니다.

이렇게 Gateway랑, Service 모두 Module의 Provider에 등록 한 후,

@ForwardRef를 사용하게된다면, 의존성이 양방향으로 설정이 가능해지기 때문에,

Service에서도 Gateway의 서버를 불러올 수 있네요!

 

혹시 여러분들도 더 좋은 방법이나, 의견이 필요하시다면 아래에 남겨주세요 감사합니다 :)