서버 섹션 이벤트는 WebSocket 프로토콜에서 클라이언트로 이벤트 및 데이터를 보내는 단방향 통신입니다. 현재 모든 주류 브라우저는 물론 인터넷 익스플로러를 제외한 서버 전송 이벤트를 지원합니다. 2333 ...
WebSocket 프로토콜은 HTTP의 프로토콜 다음으로 다른 서버 클라이언트 통신 프로토콜입니다.
서버 감각 이벤트 사용Server-Seent 이벤트 (이하 SSE라고 함)는 서버 => 클라이언트 커뮤니케이션 메소드에는 해당 서비스 주소 및 응답 방법이 있어야하며 서버는 해당 데이터 전송 방법이 없어야합니다 !
클라이언트 JS 코드H5 페이지는 다음 JS 코드와 함께 추가해야합니다.
<cript> ifof (every) {// 서비스 인터페이스 주소 var eventsource = http : // localhost : 2242/webservice/sentnntn ews); eventSource.onopen = function () {connole.log (열기 ...);} // eventsOrce.onerror = function (e) {console.log (e); 입사는 기본 이벤트 eventSource.onmessage = function (event) {console.log (onmessage ...); var data = eval ( '+event.data+'); // eval json 객체 var origin = event.origin; 메시지 소스를 나타내는 프로토콜, 도메인 이름 및 포트. 인터넷 익스플로러를 제외한 이벤트. document.getElementById (result) .innerHtml = 죄송합니다. 브라우저는 서버 시트 이벤트를 지원하지 않습니다 ...;} </script>섬기는 사람
서버는 어떤 종류의 데이터 형식을 반환해야합니까? 고객에게 어떤 종류의 응답을 제공해야합니까? 먼저 .NET 샘플을 가지고합시다
/// <summary> /// 푸시 메시지 /// </summary> /// <return> </return> [httpget] public httpresponsemessage sentnews () {httpresponsemessage responsk = req uest.createresponse (httpstatuscode.ok); {//response.headers.adds.adds.add_rcess-control-allow-origin을 사용하십시오. // 클라이언트 데이터로 푸시해야합니다 문자열 string avide =, data =; / 개방 후 재 연결 시간 (밀리 초), 실제로 회전 시간으로 이해할 수 있습니다 (배열); 응답 .content = new StreamContent (stream_result); response.content.contentType = new MediaTypeHeaderValue (Text/Event-stream); response.cachecontrol.nocache = false} {loghelper.writeweblog (ex)};
위의 코드를 읽은 후에는 대략적인 방법이 있어야한다고 생각합니다.
响应报头Content-Type 要设置为text/event-stream
响应的数据格式也应该注意到了上述代码中的data:、event:和retry:这些标记:
1.Event : 이벤트 유형을 선언하는 이벤트 유형을 의미합니다. 데이터를 수신 할 때 브라우저는 해당 유형의 이벤트를 생성합니다.
2. 데이터 : 라인에 데이터가 포함되어 있음을 의미합니다. 데이터 시작 부분에서 여러 번 나타날 수 있습니다. 이 모든 줄은 사건의 데이터입니다.
3. RESTRY : 연결이 끊어진 후 브라우저가 연결되기 전에 라인이 대기 시간을 선언하는 데 사용됩니다.
4.ID : 일반적으로 사용되지 않는 식별자 (즉, 데이터 수)를 선언하는 데 사용 된 라인을 의미합니다.
위는 서버에서 간단한 이벤트를 적용합니다.