[HTML] Server Sent Events API

2022. 9. 21. 18:15·Language/HTML
728x90

Server Sent Events API

server sent events API는 웹 페이지가 서버로부터 갱신된 정보를 자동으로 받을 수 있도록 설정한다.

server sent events 지원 여부 확인

server sent events를 사용하기 전에, 우선 사용자의 웹 브라우저가 이를 지원하는지 안 하는지 확인해야 한다.

if (typeof(EventSource) !== "undefined") {
    // server sent events를 위한 코드 부분
} else {
    // server sent events를 지원하지 않는 브라우저를 위한 안내 부분
}

다음 예제는 server sent events를 이용해 3초마다 웹 페이지를 갱신하는 예제이다.

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <title>HTML5 API Server Sent Events</title>
</head>

<body>

    <h1>server sent events를 이용한 자동 갱신</h1>

    <div id="result"></div>
    <script>
        if(typeof(EventSource) !== "undefined") {
        	var source = new EventSource("/examples/media/sse.php");
        	source.onmessage = function(event) {
        		document.getElementById("result").innerHTML += event.data + "<br>";
        	};
        } else {
        	document.getElementById("result").innerHTML = "이 문장은 사용자의 웹 브라우저가 Server Sent Events를 지원하지 않을 때 나타난다.";
        }
    </script>
</body>

</html>

위의 예제에서 사용한 서버 측 PHP 파일인 sse.php 파일은 다음과 같다.

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>

'Language > HTML' 카테고리의 다른 글

[HTML] Canvas  (1) 2022.09.23
[HTML] Canvas vs SVG  (0) 2022.09.22
[HTML] web worker API  (0) 2022.09.21
[HTML] Application Cache API  (0) 2022.09.21
[HTML] Web Storage API  (2) 2022.09.21
'Language/HTML' 카테고리의 다른 글
  • [HTML] Canvas
  • [HTML] Canvas vs SVG
  • [HTML] web worker API
  • [HTML] Application Cache API
arajo
arajo
  • arajo
    아라 메모장
    arajo
  • 전체
    오늘
    어제
    • 분류 전체보기 (510)
      • Language (298)
        • HTML (55)
        • CSS (11)
        • JavaScript (70)
        • TypeScript (8)
        • Python (33)
        • Java (119)
        • C (0)
        • C# (2)
      • Programming (92)
        • Programming (14)
        • Web (51)
        • Apache (1)
        • MySQL (23)
        • AWS (3)
      • Framework | Library (26)
        • Framework | Library (3)
        • Vue.js (2)
        • React.js (5)
        • React Native (4)
        • Node.js (1)
        • Ajax (1)
        • Bootstrap (8)
        • Spring (1)
        • Flutter (1)
      • etc (2)
      • 휴식 (19)
        • 책 (13)
        • 일기 (5)
        • 게임 일기 (1)
      • A (72)
        • 공부 (18)
        • 기타 (6)
        • 일 (48)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    HTML
    Java
    CSS
    객체
    object
    react
    리액트
    제어문
    변수
    array
    자바스크립트
    파이썬
    Python
    TypeScript
    next.js
    JavaScript
    타입스크립트
    web
    event
    MySQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
arajo
[HTML] Server Sent Events API
상단으로

티스토리툴바