簡體   English   中英

HTML5服務器發送的事件:空響應

[英]HTML5 Server-Sent Events : empty response

我正在使用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: ...

我不知道,為什么它對您不起作用,但是我遇到了非常相似的問題。

我對所有“正確”的響應都是一行。 但是,我沒想到,即使是一行事件流也都需要\\n\\n結束。

您的sse示例已生效。 你跑了嗎?

我有同樣的問題,我通過在標頭和響應/結果中將單引號替換為雙引號來解決。

   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"; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM