1

关于服务端事件和事件源的问题。这是我的简单页面(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 和 Android 4 本机浏览器中调用 listener.html 时,我会连续看到警报,好像事件是从其他地方触发的,但我不知道在哪里。

其他浏览器如 IE9 或 Chrome 没有响应。

问题出在哪里?我,Tomcat 还是浏览器?

4

0 回答 0