我正在使用PHP(CodeIgniter)编写Web服务。 我尝试在HTML5中关注服务器发送事件的几个基本教程。
但是,我无法运行其中任何一个。
我按预期(每3秒)收到正确的标题,但我没有收到任何数据。
它可能是WAMP配置还是CodeIgniter问题?
控制器方法的代码:
public function sse() {
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
}
视图的代码(部分):
<div id="play"> msg </div>
<script>
var source = new EventSource("<?php echo site_url('play/sse') ?>");
source.onmessage=function(event) {
document.getElementById("play").innerHTML+=event.data + "<br>";
};
</script>
HTTP标头:
Request URL:http://localhost/index.php/play/sse
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/event-stream
Accept-Encoding:gzip,deflate,sdch
Accept-Language:pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:no-cache
Connection:keep-alive
Cookie: ...
答案 0 :(得分:0)
我遇到了同样的问题,我通过在标题和结果/结果中用双引号替换单引号来解决它。
header("Content-type: text/event-stream");
header("Connection: Keep-alive");
header("Cache-Control: no-cache");
echo "retry:1000\n";
$result = "data:".json_encode($result)."\n\n";