我正在尝试创建一个使用EvenSource对象(在
javascript中)制作服务器发送事件(彗星)的页面.
我阅读了很多关于它的教程,但没有找到解释以下问题的教程:
>当我订阅EventSource的“onerror”事件时 – 我得到的参数类型是什么?我怎么知道究竟是什么错误?
>我知道EvenSource有一个readystate,它的变化取决于浏览器.每次“onmessage”事件发生后,为什么我的readystate会更改为0? (我使用铬).
>我如何证明我与服务器的连接保持连接而不是每次都重新连接?
浏览器:Chrome.
服务器端: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");
如果你想知道还有什么遗漏 – 请告诉我.
希望你能帮助我.
谢谢!