2012-08-29 41 views
6

我試圖製作一個頁面,使用EvenSource對象(在JavaScript中)發出服務器發送的事件(彗星)。 我看了很多關於它的教程,並沒有發現一個,說明以下幾個問題:EventSource中的錯誤處理

  1. 當我訂閱的EventSource的「onError的」事件 - 什麼是參數我得到的類型?我如何確切知道錯誤是什麼?

  2. 我知道EvenSource有一個readystate,它根據瀏覽器而變化。爲什麼在每個「onmessage」事件發生後,我的readystate變爲0? (我使用鉻)。

  3. 如何證明我與服務器的連接保持連接並且不會每次都重新連接?

瀏覽器:Chrome。

服務器端:。爪哇(如果是相關的我所做的例子是Java EE預覽,但我要在WebLogic 10R3工作

在我的例子會發生什麼事是,數據被從服務器發送到客戶端,比「的onerror」事件發生時(readyState爲0)和3秒(默認爲鉻)之後它重新連接,並再次發送該數據

的JavaScript代碼:

var source = new EventSource("TrySRV"); 
source.onmessage = function(event){ 
    alert(event.data); 
} 

source.onerror = function(event){ 
    alert(source.readystate); 
} 

Java代碼:

response.setHeader("Content-Type", "text/event-stream"); 
response.setHeader("Cache-Control", "no-cache"); 
response.getWriter.write("Hello World"); 

如果還有其他遺漏,你想知道 - 告訴我。 希望你能幫助我。

謝謝!

回答