728x90
반응형
SMALL
닷넷에서는 HTTP 기반의 SSE를 구현하기 위해 HttpResponse 객체와 같은 기본 HTTP 기능을 활용
닷넷 환경에서 SSE 구현 방식
- SSE를 처리하는 HTTP 앤드포인트를 직접 생성하여 구현, ex) Response.ContentType = "text/event-stream" 으로 SSE 응답 형식 설정
SSE가 지원되는 브라우저
닷넷 MVC에서 SSE 구현 방법
// ASP.NET MVC에서 SSE 구현
// 컨트롤러 메서드 작성
public async Task<ActionResult> StreamData()
{
Response.ContentType = "text/event-stream";
Response.BufferOutput = false;
try
{
while (true)
{
if (!Response.IsClientConnected)
{
break;
}
var data = new { Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") };
Response.Write($"data: {Newtonsoft.Json.JsonConvert.SerializeObject(data)}\n\n");
Response.Flush();
await Task.Delay(1000); // 1초 대기
}
}
catch (Exception ex)
{
Console.WriteLine($"에러 발생: {ex.Message}");
}
return null;
}
// 클라이언트에서 SSE 연결
document.addEventListener("DOMContentLoaded", function () {
const eventSource = new EventSource("/Controller/StreamData");
eventSource.onmessage = function (event) {
console.log("받은 데이터:", event.data);
document.body.innerHTML += `<p>${event.data}</p>`;
};
eventSource.onerror = function () {
console.error("SSE 연결 오류 발생");
};
});
SSE가 적합한 경우
- 실시간 데이터 스트리밍이 필요한 상황 (주가, 센서 데이터, 알림 시스템, 현황판 등)
- 클라이언트가 데이터를 요청하지 않고, 서버에서 데이터를 푸시하는 구조가 필요한 경우
728x90
반응형
LIST
'asp.net' 카테고리의 다른 글
[.net framework] Socket 통신(서버) (0) | 2025.02.18 |
---|---|
[.net] 해싱 알고리즘 SHA-256 (0) | 2024.11.29 |
[.net] MvcBuildViews 설정, Web.config 충돌 (0) | 2024.11.20 |
[.net] Entity Framework(EF, 엔티티 프레임워크) (0) | 2024.11.12 |
[.net] WarmUp(워밍업) (0) | 2024.11.05 |