Javascript 服务器发送事件PHP一直发送过去的事件
我目前正在使用服务器发送事件和PHP将信息从PHP服务器发送到javascript webclient。但是,当我重新加载页面时,服务器会发送所有最后的事件。我想知道它是否把它们存放在任何地方,我怎样才能阻止它这样做 下面是php代码。我使用dbus监视按键事件Javascript 服务器发送事件PHP一直发送过去的事件,javascript,php,dbus,server-sent-events,Javascript,Php,Dbus,Server Sent Events,我目前正在使用服务器发送事件和PHP将信息从PHP服务器发送到javascript webclient。但是,当我重新加载页面时,服务器会发送所有最后的事件。我想知道它是否把它们存放在任何地方,我怎样才能阻止它这样做 下面是php代码。我使用dbus监视按键事件 <?php header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); $dbus = new Dbus(DBus::BUS_SY
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$dbus = new Dbus(DBus::BUS_SYSTEM);
$dbus->addWatch("nl.pcdata.display", "displayKey");
do {
$signal = $dbus->waitLoop(100);
if($signal instanceof DbusSignal){
if($signal->matches("nl.pcdata.display","displayKey")){
$data = $signal->getData()->getData();
echo "data:Address:{$data[0]};Button:{$data[1]}.\n\nretry: 100\n\n";
flush();
break;
}
else{
echo "data:Geen data\n\n";
flush();
}
}
}while(true);
?>
以及javascript中的代码
var source = new EventSource("textinput.php");
source.onmessage = function(event){
console.log(typeof event.data);
var result = event.data.split(";");
console.log(result);
document.getElementById("items").innerHTML += "<li>" + event.data + "</li>";
};
var source=neweventsource(“textinput.php”);
source.onmessage=函数(事件){
日志(事件类型、数据);
var result=event.data.split(“;”);
控制台日志(结果);
document.getElementById(“items”).innerHTML+=“”+event.data+” ”;
};
所以代码做了它应该做的事情。例如,当我按下OK按钮时,服务器会将其发送到webclient
看起来是这样的
控制台输出:
当我重新加载页面时,它会再次输出。我需要的是当我重新加载页面时,它只显示从该点开始按下的键