服务器发送的事件:如何触发发送
问题描述:
我读到这对服务器发送的事件:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events在那里,他们给在PHP中比如将一个事件。我已经了解到,头文件指令必须是脚本中的第一条指令。不过,我需要在发送事件之前做一些预处理:服务器发送的事件:如何触发发送
//Do some preprocessing in order the determine whether to send an event or not
if ($sendevent) {
header("Content-Type: text/event-stream\n\n");
// echo the data
}
显然为“头”是不是第一个指令,这是不可能的。如何解决这个问题呢?发送事件只能通过从客户端发送请求来触发?
答
The documentation for the header()
function says:
记住header()函数被发送任何实际输出之前必须被调用。
这意味着你可以包括任何数量的指令,但你的脚本必须在调用之前header()
不输出任何东西。 您if
不输出任何东西,所以它的罚款。
小心的PHP开始标记之前不要有空格字符。
我明白了!这是在我身边一个误区:要求仅适用于传输到客户端的数据,而不是在不被传递到客户端脚本的PHP代码。非常感谢这些信息! – Sempervivum