执行服务器发送的事件时出错

时间:2017-09-28 07:45:12

标签: javascript php html mysqli server-sent-events

晚上好, 我想尝试服务器发送的事件。我想要展示

NEW ATTACK FROM SINGAPORE TO MALAYSIA

这只是一个例子。

我创建了一个php脚本来制作一个充满国家/地区的数组,然后从array访问任何一个国家/地区。之后我echo数据。我使用事件源来传输来自PHP脚本的数据......但是,我无法在HTML页面上看到任何内容。相反,PHP脚本再次在网络选项卡中再次执行

enter image description here

当我在网络标签中观察事件流时,数据为空

我按照w3schools的代码进行了尝试。我想我没有错过任何东西.. 我的代码在下面找到..

shownewattack.php代码:

    <?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

$countryarr = array("UNITED STATES", "INDIA", "SINGAPORE","MALAYSIA","COLOMBIA","THAILAND","ALGERIA","ENGLAND","CANADA","CHINA", "SAUDI ARABIA");
$length = sizeof($countryarr);
$random = rand(0,$length);
$random1 = rand(0,$length);
$random_srccountry = $countryarr[$random];
$random_dstcountry = $countryarr[$random1];
echo "[x] NEW ATTACK: FROM [".$random_srccountry."] TO [".$random_dstcountry."] \n\n";
flush();
?>

HTML代码:

<!DOCTYPE html>
<html>
<body>

<h1>Getting server updates</h1>
<div id="result"></div>

<script>
if(typeof(EventSource) !== "undefined") {
    var source = new EventSource("shownewattack.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>

</body>
</html>

我的问题是为什么我的页面上没有输出,尽管脚本多次执行。你能解决这个问题吗?谢谢

0 个答案:

没有答案