Spring MVC 4.1 서버 측 푸 시 실현 과정 분석

이 글 은 주로 Spring MVC 4.1 서버 측 푸 시 실현 과정 에 대한 분석 을 소개 하 였 으 며,예시 코드 를 통 해 매우 상세 하 게 소개 하 였 으 며,여러분 의 학습 이나 업무 에 대해 어느 정도 참고 학습 가 치 를 가지 고 있 으 므 로 필요 한 분 들 은 참고 하 시기 바 랍 니 다.
서버 측 푸 시
  • SSE(server send event)는 서버 측 이 브 라 우 저 에 메 시 지 를 보 내 는 기술 이지 일반적인 브 라 우 저 가 server 요청 처럼 응답 하 는 것 이 아 닙 니 다
  • 4.567917.우리 가 server 를 사용 하여 브 라 우 저 에 데 이 터 를 주동 적 으로 전송 해 야 할 때 이 기술 을 사용 하 는 것 을 고려 하 십시오.양 방향 통신 기능 을 가 진 websocket 을 고려 하 는 것 이 아 닙 니 다4.567917.예전 에 우 리 는 ajax 폴 링 server 로 도 실현 할 수 있 었 고 서버 부담 이 컸 다
  • sse 원 리 는 server 에 한 번 요청 한 후에 server 가 요청 을 끊 고 놓 지 않 는 다 는 것 이다(이때 브 라 우 저 에서 요청 상 태 는 pending).데이터 가 있 으 면 브 라 우 저 에 게 돌아 간 다음 요청 을 하 는 것 으로 유추 된다
  • 모든 주류 브 라 우 저 는 서버 전송 이 벤트 를 지원 합 니 다.Internet Explorer(6,7,8,9)를 제외 하고
  • 예시
    서버 푸 시 컨트롤 러
    
    package com.wisely.web;
    
    import java.util.Random;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class SSEController {
      //  produces="text/event-stream"
      @RequestMapping(value="/push",produces="text/event-stream")
      public @ResponseBody String push(){
         Random r = new Random();
         try {
             Thread.sleep(5000);
         } catch (InterruptedException e) {
             e.printStackTrace();
         }
         return "data:Testing 1,2,3" + r.nextInt() +"

    "; } }
    페이지 코드
    
    <div id="msg_from_server"></div>
    <script type="text/javascript" src="<c:url value="/js/jquery.js" />"></script>
    <script type="text/javascript">
    if (!!window.EventSource) {
        var source = new EventSource('push'); // http://localhost:8080/testSpringMVC/push
        s='';
        source.addEventListener('message', function(e) {
    
          s+=e.data+"<br/>"
          $("#msg_from_server").html(s);
    
        });
    
        source.addEventListener('open', function(e) {
          console.log("    .");
        }, false);
    
        source.addEventListener('error', function(e) {
          if (e.readyState == EventSource.CLOSED) {
            console.log("    ");
          } else {
            console.log(e.readyState);  
          }
        }, false);
      } else {
          console.log("  sse");
      }
    </script>
    효과.

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기