6

サーバー送信イベント (コメット) を作成するために、EvenSource オブジェクト (javascript) を使用するページを作成しようとしています。私はそれについて多くのチュートリアルを読みましたが、次の質問を説明するチュートリアルが見つかりませんでした:

  1. EventSource の「onerror」イベントをサブスクライブすると、取得するパラメーターの型は何ですか? エラーの内容を正確に知るにはどうすればよいですか?

  2. EvenSource には readystate があり、ブラウザーによって変化することを知っています。「onmessage」イベントが発生するたびに readystate が 0 に変わるのはなぜですか? (私はクロムを使用しています)。

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

ブラウザ:クローム。

サーバー側: Java (関連する場合、私が作成した例は Java EE プレビューにあります。ただし、WebLogic 10R3 で作業する予定です。

私の例では、データがサーバーからクライアントに送信され、「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");

他に知りたいことが足りない場合は、教えてください。あなたが私を助けてくれることを願っています。

ありがとう!

4

2 に答える 2

3

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

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

于 2012-10-02T14:47:05.723 に答える