nestjs에서 사용하는 sse는 기본적으로 예제가 주어져 사용해보았다.
@Sse('sse')
sse() { // : Observable<MessageEvent>
return interval(1000).pipe(
map((_) => ({ data : { hello: 'world' } } as MessageEvent)),
);
}
위 예제는 /sse url로 요청하면 초당 hello: world 라는 데이터를 계속 뿌려준다.
한번 요청하면 계속 진행되며, 최대 6개의 브라우저까지 지원해준다.
7번째 브라우저는 나머지 브라우저 중 하나가 종료되어야 진행된다.
sse를 효율적으로 사용하려면 rxjs를 잘 알면 좋을 것 같은데,
rxjs가 좀 어렵다보니 sse를 사용하기도 어렵게 느껴진다.
또, 내가 구현하려는 알림 기능은 sse만 사용하는 것이 아니라
다른 +@가 더 필요해보여 고민중이다.
특히 정해진 시간에 서버 -> 클라이언트로 일방적인 통신을 보내주는 방법을 어떻게 구현해야 하는지에 대한 고민이 가장 많다..
sse에 대한 예제가 생각보다 많지 않아서 interval에 대한 내용만 보이고
특정 시간에 보내는 내용은 보이지 않았다. (공식 문서도 그렇다..)
일단은 nest scheduler를 사용해볼 예정이며, 정답은 정해지지 않았기에 계속해서 도전해보려 한다.