콘텐츠로 이동

SSE (Server-Sent Events)

Server-Sent Events는 단방향 HTTP 스트림입니다. 서버가 밀어 보내고 클라이언트는 듣기만 합니다. Restorm은 이를 독립적인 요청 유형으로 다룹니다.

트리에서 마우스 오른쪽 버튼 클릭 ▸ 추가 ▸ SSE 요청.

연결된 SSE 탭: 오른쪽에 수신한 이벤트가 타임스탬프, 이름(“ping”), 페이로드(시퀀스 번호)와 함께 하나씩 표시됩니다.

필드역할
URL스트림의 엔드포인트
헤더연결 요청의 헤더 — 인증 정보가 지나가는 곳입니다
마지막 이벤트 식별자Last-Event-ID 헤더의 초기 값으로, 첫 연결에만 전송됩니다

Restorm은 EventSource 명세를 따릅니다. event:, data:, id:, retry: 필드를 해석하고, 수신한 이벤트를 타임스탬프와 이름, 페이로드와 함께 표시합니다. 이벤트를 클릭하면 전체 내용이 펼쳐집니다. 식별자는 재연결을 위해 보관됩니다.

연결이 끊기면 재연결 시 마지막으로 받은 식별자를 Last-Event-ID 로 자동 재전송합니다. 이 덕분에 서버가 중단된 지점부터 이어 갈 수 있습니다.

이 스트림은 수신 전용입니다. 연결이 열린 뒤에 보낼 것은 없습니다.

액션은 두 가지입니다. SSE 연결(출력은 connectedmessage 이며, 수신한 이벤트마다 한 번씩 내보냅니다)과 SSE 연결 닫기입니다. 연결과 스트리밍을 참고하십시오.

흔히 쓰는 방식은 이렇습니다. 스트림을 열고, HTTP 호출로 업무 동작을 촉발한 뒤, 기대한 이벤트가 message 포트로 잘 도착하는지 어서션으로 확인합니다.

세 가지 대상이 있습니다. cURL, 브라우저의 EventSource, Python(스트리밍 requests)입니다.