사용자 도구

사이트 도구


springframework:httpstream

Spring HTTP Streaming

ServerSentEvent Reverse Proxy(nginx) 설정

  • Ngnix 같은 reverse proxy 사용시에 buffering 을 끄는 등의 별도 설정이 필요하다.
@RequestMapping("/sseExamples")
public SseEmitter getRealTimeJudgeResultAction(HttpServletResponse response) throws IOException {
    // ....
    response.addHeader("X-Accel-Buffering", "no");
    SseEmitter sseEmitter = new SseEmitter();
    // ....
    sseEmitter.send("Established");
    return sseEmitter;
}
# 응답 결과를 보면 X-Accel-Buffering: no 헤더가 출력됨.
curl -D - http://....
HTTP/1.1 200
X-Accel-Buffering: no
Content-Type: text/event-stream
Transfer-Encoding: chunked
...
location /path/to/sse {
  proxy_pass http://upstream;
  proxy_buffering off; # X-Accel-Buffering: no 와 같은 효과
  proxy_cache off;
  proxy_set_header Host $host;
  proxy_set_header Connection '';
  proxy_http_version 1.1;
  chunked_transfer_encoding off;
}

참고

springframework/httpstream.txt · 마지막으로 수정됨: 2022/01/04 17:00 저자 kwon37xi