This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

EventSource: message 이벤트

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2020년 1월⁩.

참고 : 이 기능은 Web Worker에서 사용할 수 있습니다.

EventSource 인터페이스의 message 이벤트는 이벤트 소스를 통해 데이터를 수신할 때 발생합니다.

이 이벤트는 취소할 수 없으며, 버블링되지 않습니다.

구문

addEventListener()와 같은 메서드에서 이벤트 이름을 사용하거나, 이벤트 핸들러 속성을 설정합니다.

js
addEventListener("message", (event) => { })

onmessage = (event) => { }

이벤트 타입

MessageEvent. Event로부터 상속됩니다.

Event MessageEvent

이벤트 속성

이 인터페이스는 부모인 Event의 속성을 상속받습니다.

MessageEvent.data 읽기 전용

메시지 송신자로부터 보내진 데이터.

MessageEvent.origin 읽기 전용

메시지 송신자의 출처를 나타내는 문자열.

MessageEvent.lastEventId 읽기 전용

이벤트에 유일한 ID를 나타내는 문자열.

MessageEvent.source 읽기 전용

메시지 송신자를 나타내는 MessageEventSource (WindowProxy, MessagePort, ServiceWorker 객체가 될 수 있습니다).

MessageEvent.ports 읽기 전용

메시지가 전송되는 채널과 연결된 포트를 나타내는 MessagePort 객체 배열(적절한 경우, 예: 채널 메시징이나 공유 워커로 메시지를 보낼 때).

예제

이 기본 예제에서는 서버로부터 이벤트를 받기 위해 EventSource 를 생성하며, sse.php 페이지는 이벤트를 생성하는 역할을 합니다.

js
const evtSource = new EventSource("sse.php");
const eventList = document.querySelector("ul");

evtSource.addEventListener("message", (e) => {
  const newElement = document.createElement("li");

  newElement.textContent = `message: ${e.data}`;
  eventList.appendChild(newElement);
});

onselect로 작성한 동일한 예시

js
evtSource.onmessage = (e) => {
  const newElement = document.createElement("li");

  newElement.textContent = `message: ${e.data}`;
  eventList.appendChild(newElement);
};

명세서

Specification
HTML
# event-message
HTML
# handler-eventsource-onmessage

브라우저 호환성

같이 보기