Php Server发送事件 - 消息发送者和收件箱

时间:2017-08-26 13:31:02

标签: html5 events server-sent-events

我试图制作一些php消息发送者和接收者页面。 来自" Admin.php"页面,管理员可以向网站访问者发送消息。 " receiver.php"页面是访问者的收件箱。 这是代码: admin.php的:

<form method="post" action="sender.php">
<input type="text" name="message">
<input type="submit" value="Submit">
</form>

Sender.php:

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

$message = $POST["message"];
echo "data: {$message}\n\n";
flush();
?>

Receiver.php:

<!DOCTYPE html>
<html>
<body>

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

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

为什么这不起作用?

1 个答案:

答案 0 :(得分:1)

问题是你试图用“sender.php”做两件事。

从管理表单中,您需要提交一个将存储消息的php脚本放在某种数据库中。

然后在“receiver.php”中,您需要连接到另一个PHP脚本,该脚本的作用是继续轮询该数据库以查找新条目,当它看到它时应将其发送到客户端。后一个PHP脚本将在无限循环中运行。