2012-08-29 13 views
6

EvenSourceオブジェクト(JavaScript)を使用してサーバー送信イベント(コメット)を作成するページを作成しようとしています。 は、私はそれについて多くのチュートリアルを読み、以下の質問を説明するものを発見していない:EventSourceでのエラー処理

私はのEventSourceの「ONERROR」イベントをサブスクライブ
  1. - 私が取得パラメータの種類は何ですか?どのようにエラーが正確にわかったのですか?

  2. 私は、EvenSourceには読み取り値があり、その変化はブラウザによって異なることがわかります。なぜ "onmessage"イベントが発生するたびにreadystateが0に変わるのですか? (私はクロムを使う)。

  3. サーバーへの接続が接続されたままであり、毎回再接続しないことを証明するにはどうすればよいですか?

ブラウザ:Chrome。 。。

サーバー側:それは私が作った例は、Java EEプレビューにある関連だが、私は、WebLogic 10R3に取り組むつもりならばJavaは(私の例では何が起こる

は、データがされていることですサーバからクライアントに送信され、「ONERROR」イベントが発生するよりも(readyStateのは0)と3秒(Chromeのデフォルト)の後には、再接続して、再度データを送信

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

あなたが知りたいと思っていないものがあれば教えてください。 私を助けてくれることを願っています。

ありがとうございます!

答えて

3

これに応答して閉じるのではなく、サーバーで接続を保持する必要があります。

http://jcp.org/en/jsr/detail?id=315、またはGlassfish/Grizzly/Jettyサーバーを参照してください。