事件源中的错误处理

6

我正在尝试创建一个页面,使用EvenSource对象(在javascript中)来制作服务器推送事件(comet)。

我阅读了许多相关教程,但没有找到一篇能够回答以下问题的文章:

  1. 当我订阅EventSource的"onerror"事件时,收到的参数类型是什么?如何确定出现了哪种错误?

  2. 我知道EvenSource有一个readystate属性,并且它会根据浏览器的不同而发生变化。为什么我的readystate在每次"onmessage"事件发生后都会变为0?(我使用的是Chrome浏览器)

  3. 如何证明我的连接与服务器保持连接,而不是每次重新连接?

浏览器: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");

如果您还希望了解其他内容,请告诉我。 希望您能够帮助我。 谢谢!
2个回答

3

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接