1

サーブレットに取り組んでいますが、問題が発生しました。SSE は Firefox では問題なく動作しますが、Chrome/Safari では動作しません。PHP の同様のコードは、上記の 3 つのブラウザーすべてでスムーズに実行できます。問題を解決するには?どうも!!

これは私のサーブレットコードです:

    response.setContentType("text/event-stream;charset=UTF-8");
    response.addHeader("Cache-Control", "no-cache");
    PrintWriter out = response.getWriter();
    out.print("data: " + new Date());
    out.flush();
    out.close();

そして、これは私のJSコードです:

           if (typeof(EventSource) !== "undefined")
        {
            var source = new EventSource("sse");
            source.onmessage = function(event)
            {
                document.getElementById("result").innerHTML += event.data + "<br />";
                alert("ok");
            };
        }
        else
        {
            document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
        }

ところで、私は Glassfish を使用しています。

4

1 に答える 1

1

行を変更することができます out.print("data: " + new Date()); そのような out.print("data: " + new Date() + " \n\n"); ブラウザは通常、SSE データ メッセージの最後に二重の「\n」が見つからないためスタックします。

于 2013-05-31T09:01:21.300 に答える