server-sent-events:如何触发发送

时间:2016-07-14 16:10:02

标签: php server-sent-events

我读到了有关服务器发送事件的信息: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
}

显然这是不可能的,因为"标题"不是第一条指令。如何解决这个问题呢?只能通过从客户端发送请求来触发发送事件吗?

1 个答案:

答案 0 :(得分:0)

The documentation for the header() function says

  

请记住,在发送任何实际输出之前必须调用header()。

这意味着您可以包含任意数量的指令,但在调用header()之前,您的脚本不得输出任何内容。 您的if没有输出任何内容,所以没关系。

注意不要在PHP开始标记之前有空格字符。