サーブサイドイベントとEventSourceに関する質問。これは私の簡単なページです(listener.html)
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<title>SSE test page</title>
<script type="text/javascript">
$(document).ready(function() {
var guid = "1234567890";
var source = new EventSource('servlet/push-event');
source.onmessage = function (e) {
alert(e.origin);
};
});
</script>
</head>
<body>Listener!</body>
</html>
Tomcatを超えてデプロイされているので、(http://127.0.0.1:8080/html/listener.html)でアクセスします。
サーバー側をJavaで実装しました。
resp.setContentType("text/event-stream");
resp.setHeader("Cache-Control", "no-cache");
PrintWriter out;
try {
out = resp.getWriter();
out.write("data: wowowowowowo");
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
FirefoxとAndroid4ネイティブブラウザでlistener.htmlを呼び出すと、イベントが他の場所から発生したかのようにアラートが連続して表示されますが、どこにあるのかわかりません。
IE9やChromeなどの他のブラウザは応答しません。
問題はどこだ?私、Tomcatまたはブラウザ?