<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를 브라우저에서 열어서 확인하세요.
여기 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를 브라우저에서 열어서 확인하세요.
여기 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에 접근하세요.