首先说这在我的本地机器上完美运行,下面的 js 示例连接到 stream.php 并每秒接收服务器当前时间的连续更新。
索引.php
var source = new EventSource("stream.php");
source.addEventListener('message', function(e) {
console.log(e);
}, false);
source.addEventListener('open', function(e) {
console.log(e);
}, false);
source.addEventListener('error', function(e) {
if (e.readyState == EventSource.CLOSED) {
console.log('closed');
}
}, false);
流.php
while(true)
{
// Headers must be processed line by line.
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
// Set data line
print "data: " . date( 'G:H:s', time() ) . PHP_EOL . PHP_EOL;
// Toilet
flush();
// Wait one second.
sleep(1);
}
上传到现场开发后,我确实预计会有一点延迟。服务器。但有大约 15 到 20 分钟的时间延迟。在我看到第一个条目之前。
连接不会断开。(可能已经进行了 40 分钟以上。)这只是一个 Apache 循环问题(意味着是时候查看 Web 套接字)还是我可以做些什么来解决这个问题?