Php服务器发送事件 - 邮件发件人和收件箱 [英] Php Server Sent Event- Message sender and inbox

查看:117
本文介绍了Php服务器发送事件 - 邮件发件人和收件箱的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试制作一些php消息发送者和接收者页面。
从Admin.php页面,管理员可以向网站访问者发送消息。而receiver.php页面是访问者的收件箱。
这里是代码:
Admin.php:

 < form method =postaction = sender.php > 
< input type =textname =message>
< input type =submitvalue =Submit>
< / form>

Sender.php:

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

$ message = $ POST [message];
echodata:{$ message} \\\
\\\
;
flush();
?>

Receiver.php:

 <!DOCTYPE html> 
< html>
< body>

< h1>获取服务器更新< / 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 =对不起,您的浏览器不支持服务器发送的事件...;
}
< / script>

< / body>
< / html>

为什么这不工作?

解决方案

你没有问过一个问题,所以我认为这是为什么这不工作?问题是您正在尝试使用sender.php来做两件事。



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



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


I'm trying to make some php message sender and receiver Pages. From the "Admin.php" page, administrator can send messages to the website visitors. And the "receiver.php" page is the visitor's inbox. Here is the codes: 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>

why doesn't this work?

解决方案

You haven't asked a question, so I'll assume it is "why doesn't this work?". The problem is that you are trying to use "sender.php" to do two things.

From the admin form you need to submit to one php script that will store the messages, in a database of some kind.

Then in "receiver.php" you need to connect to a different PHP script, whose job is to keep polling that database for new entries, and when it sees one it should send it to the client. This latter PHP script will run in an infinite loop.

这篇关于Php服务器发送事件 - 邮件发件人和收件箱的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆