关于Serve-Side Events和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();
}
当我在ff和android 4本机浏览器中调用listener.html时,我会连续看到警报,好像事件是从其他地方发出的,但我不知道在哪里。
IE9或Chrome等其他浏览器没有响应。
问题在哪里?我,tomcat或浏览器? 非常感谢你 卢卡