>  기사  >  백엔드 개발  >  자바스크립트에서 EventSource 객체를 학습할 때 몇 가지 문제가 발생합니까? ?

자바스크립트에서 EventSource 객체를 학습할 때 몇 가지 문제가 발생합니까? ?

WBOY
WBOY원래의
2016-09-19 09:16:301470검색

<code>javascript:
var e = new EventSource('test.php');
e.onopen = function(){
  console.log('你创建了一个服务器长连接!');
};

e.onmessage = function(event){
  var e = event || window.event;
  console.log('接受到来自服务器的消息: ' + event.data);
}

e.onerror = function(event){
  console.log('链接发生错误,当前链接状态: ' +  event.readyState);
}

PHP:
header('content-type:text/event-stream');
header('cache-control:no-cache');
while (true)
 {
   echo 'hello world';
   ob_flush();
   flush();
   sleep(1);
 }
 </code>

아래와 같이 요청한 event_source.php를 브라우저에서 열어서 확인하세요.

자바스크립트에서 EventSource 객체를 학습할 때 몇 가지 문제가 발생합니까? ?

여기 EventStream이 어떤 종류의 응답 유형인지 이해가 되지 않습니다... onmessage 메서드가 왜 데이터를 전혀 수신하지 않는지(도중에 EventStream 열 아래에 정보가 수신되지 않기 때문에...), 무슨 일이 일어나고 있나요? 에? ? ? 백그라운드에서 출력되는 것은 문자열입니다. 문자열에 대해 유형 변환을 수행해야 합니까? ?

답글 내용:

<code>javascript:
var e = new EventSource('test.php');
e.onopen = function(){
  console.log('你创建了一个服务器长连接!');
};

e.onmessage = function(event){
  var e = event || window.event;
  console.log('接受到来自服务器的消息: ' + event.data);
}

e.onerror = function(event){
  console.log('链接发生错误,当前链接状态: ' +  event.readyState);
}

PHP:
header('content-type:text/event-stream');
header('cache-control:no-cache');
while (true)
 {
   echo 'hello world';
   ob_flush();
   flush();
   sleep(1);
 }
 </code>

아래와 같이 요청한 event_source.php를 브라우저에서 열어서 확인하세요.

자바스크립트에서 EventSource 객체를 학습할 때 몇 가지 문제가 발생합니까? ?

여기 EventStream이 어떤 종류의 응답 유형인지 이해가 되지 않습니다... onmessage 메서드가 왜 데이터를 전혀 수신하지 않는지(도중에 EventStream 열 아래에 정보가 수신되지 않기 때문에...), 무슨 일이 일어나고 있나요? 에? ? ? 백그라운드에서 출력되는 것은 문자열입니다. 문자열에 대해 유형 변환을 수행해야 합니까? ?

에코의 텍스트 출력 형식이 잘못되었기 때문입니다.

각 에코의 내용은 다음 형식이어야 합니다

<code>field: value
</code>

필드는 데이터, 이벤트, ID, 재시도 중 하나일 수 있습니다.
값은 데이터 페이로드입니다

여기 예시를

으로 변경해야 합니다.
<code>echo "data: hello world\n\n";
</code>

참고:

  • https://www.mxgw.info/t/serve...

  • http://javascript.ruanyifeng....

  • https://developer.mozilla.org...


php에는 php 식별자가 없나요?
브라우저에서 php 파일에 접근하면 js는 절대 메시지를 받지 못합니다. html을 생성하려면 브라우저에서 html에 접근하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.