캠퍼스 프로젝트를 대기 질 모니터링 시스템에서 만들고 있는데, 데이터 (일부 정수 값)는 감지 장치에서 웹 페이지로 가져와야합니다. 내가Php를 사용하여 한 클라이언트에서 다른 클라이언트로 데이터 푸시
이 URL http://localhost/AQProject/recordupdate.php?val=2
에 의해 부름 스크립트가 내용을 표시하는 웹 페이지를 업데이트인가요 원하는 것은
. 이제는 데이터를 데이터베이스에 저장하고 매 2 초마다 업데이트를 확인하기 위해 AJAX 기반 쿼리를 실행할 수 있지만 서버에 의해 업데이트가 업데이트되기를 원합니다. 내가 무슨 짓을
은 :
나는 Server sent events
을 시도했습니다. 여기에 내가
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
if($_SERVER["REQUEST_METHOD"]=="GET")
{
if(empty($_GET["val"])) die ("Empty Value from source");
else
{
$v = $_GET['val'];
echo "data: The Pollution stub value is {$v}".PHP_EOL;
ob_flush();
flush();
}
}?>
을 시도하고 HTML 내가 알아 낸, 이제 스크립트
<script>
if(typeof(EventSource) !== "undefined") {
var source = new EventSource("recordupdate.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML = event.data +
"<br>";
};
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
}
</script>
을 가지고 무엇이 많은 다른 클라이언트 (감지시 때문에 작동하지 않습니다 (만약 내가 잘못 정정 해줘) 있음 유닛)은 recordupdate.php
을 웹 페이지 클라이언트가 호출 한 스크립트와 다른 인스턴스로 호출합니다.
server sent events
을 사용하여 가능한 방법이 있습니까? 또는 절대적으로 websockets, node.js 등을 파헤쳐 야합니다. 미리 감사드립니다.
하지만, 데이터가 정말 다른 하나의 클라이언트에서 흐르는 것보고는 이중 연결이 아니라 그것은 전이중 연결을 여는 것보다 간단합니다 –
브라우저 HTTP를 통해에만 보낼 수 있습니다.. 요청을 받고 답을 얻으십시오. 더 자세한 내용은 https://habrahabr.ru/post/209864/을 참조하십시오. 간단한 PHP 서버 및 js 클라이언트 예제가 있습니다. –