javascript 學習 EventSource 對象 碰到的一些問題??

來源:互聯網
上載者:User
javascript:var e = new EventSource('test.php');e.onopen = function(){  console.log('你建立了一個伺服器長串連!');};e.onmessage = function(event){  var e = event || window.event;  console.log('接受到來自伺服器的訊息: ' + event.data);}e.onerror = function(event){  console.log('連結發生錯誤,當前連結狀態: ' +  event.readyState);}PHP:header('content-type:text/event-stream');header('cache-control:no-cache');while (true) {   echo 'hello world';   ob_flush();   flush();   sleep(1); } 

在瀏覽器中開啟請求的 event_source.php 查看,如:

不理解 這裡的 EventStream 是一個怎樣的響應類型....,為什麼 onmessage 方法一直接受不到任何資料(因為途中的EventStream 欄下 沒有接收到任何資訊...) , 這是怎麼回事??我後台輸出的是字串,是否需要對該字串做類型轉換??

回複內容:

javascript:var e = new EventSource('test.php');e.onopen = function(){  console.log('你建立了一個伺服器長串連!');};e.onmessage = function(event){  var e = event || window.event;  console.log('接受到來自伺服器的訊息: ' + event.data);}e.onerror = function(event){  console.log('連結發生錯誤,當前連結狀態: ' +  event.readyState);}PHP:header('content-type:text/event-stream');header('cache-control:no-cache');while (true) {   echo 'hello world';   ob_flush();   flush();   sleep(1); } 

在瀏覽器中開啟請求的 event_source.php 查看,如:

不理解 這裡的 EventStream 是一個怎樣的響應類型....,為什麼 onmessage 方法一直接受不到任何資料(因為途中的EventStream 欄下 沒有接收到任何資訊...) , 這是怎麼回事??我後台輸出的是字串,是否需要對該字串做類型轉換??

因為你 echo 裡面輸出的常值內容格式不對。

每一次 echo 的內容,都必須是如下格式

field: value

field 可以是 data, event, id, retry 這四個中的任意一個
value 為資料有效載荷

你這裡的例子,應該改為

echo "data: hello world\n\n";

參考資料:

  • https://www.mxgw.info/t/serve...

  • http://javascript.ruanyifeng....

  • https://developer.mozilla.org...


php裡面沒有加php標識符?
瀏覽器裡面訪問php檔案, js肯定不能收到訊息, 要建個html,瀏覽器裡面訪問html。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.