sgcWebSockets 2023.2.0부터 HTTP/1 클라이언트가 개선되어 SSE 요청을 지원해요. 이전에는 서버 컴포넌트에서만 SSE를 지원하고 클라이언트는 지원하지 않았어요.
SSE(Server-Sent Events)는 서버에서 클라이언트 브라우저로 푸시 알림을 효율적으로 수신하기 위한 웹 기술이에요. 지속적인 폴링 없이 웹 페이지가 서버에서 실시간 업데이트를 받을 수 있는 표준이에요. SSE는 채팅 애플리케이션, 스포츠 점수, 금융 데이터 등 실시간 업데이트가 필요한 시나리오에 주로 사용해요.
SSE는 단일 HTTP 연결을 통해 작동하며 브라우저가 이 연결을 자동으로 열고 유지해요. 서버는 이 연결을 사용하여 클라이언트가 연결된 동안 업데이트를 클라이언트에 푸시해요.
SSE 클라이언트
TsgcHTTP1Client에는 서버와 클라이언트 간 이벤트 스트림을 시작하는 HTTP 요청을 전송하는 새 메서드 GetSSE가 있어요. 클라이언트가 서버에서 새 스트림을 받을 때마다 텍스트 메시지 내용과 함께 OnSSEMessage 이벤트가 호출돼요.
간단한 예제를 아래에서 확인하세요.
oHTTP := TsgcHTTP1Client.Create(nil);
oHTTP.OnSSEMessage := OnSSEMessageEvent;
oHTTP.GetSSE('https://www.esegece.com/sse.php');
procedure OnSSEMessageEvent(Sender: TObject; const aMessage: string; var Cancel: Boolean);
begin
DoLog(aMessage);
end;
전체 소스 데모와 Windows용 컴파일된 프로젝트는 아래에서 다운로드할 수 있어요.
