Computer >> 컴퓨터 >  >> 프로그램 작성 >> HTML

HTML5에서 서버 전송 이벤트는 어떻게 작동합니까?


서버에서 보낸 이벤트는 서버에서 클라이언트로 데이터를 스트리밍하는 방법을 표준화합니다. 웹 애플리케이션에서 Server-Sent Events를 사용하려면 문서에 요소를 추가해야 합니다.

요소의 src 속성은 이벤트가 포함된 데이터 스트림을 보내는 지속적인 HTTP 연결을 제공해야 하는 URL을 가리켜야 합니다.

URL은 이벤트 데이터를 일관되게 전송하는 PHP, PERL 또는 Python 스크립트를 가리킵니다. 다음은 서버 시간을 예상하는 웹 애플리케이션의 간단한 예입니다.

HTML5에서 서버 전송 이벤트는 어떻게 작동합니까?

HTML5에서 서버 전송 이벤트를 사용하는 방법을 배우기 위해 다음 코드를 실행할 수 있습니다.

예시

<!DOCTYPE HTML>
<html>
   <head>
      <script type="text/javascript">
         document.getElementsByTagName("eventsource")[0].addEventListener("server-time", eventHandler, false);
         function eventHandler(event){
            // Alert time sent by the server
            document.querySelector('#ticker').innerHTML = event.data;
         }
      </script>
   </head>
   <body>
      <div id="sse">
         <eventsource src="/cgi-bin/ticker.cgi" />
      </div>
      <div id="ticker" name="ticker">
         [TIME]
      </div>
   </body>
</html>

마지막으로 다음은 perl로 작성된 ticker.cgi입니다 -

#!/usr/bin/perl
print "Content-Type: text/event-stream\n\n";
while(true){
   print "Event: server-time\n";
   $time = localtime();
   print "Data: $time\n";
   sleep(5);
}