如何关闭Server-Sent Events事件

时间:2013-04-05 16:57:22

标签: javascript html5 server-sent-events

我想知道如何通过JavaScript关闭服务器发送的事件。下面是我的虚拟代码:

var ser=new EventSource("path");
ser.onmessage=function(ev){
if(!ev)
   //want to close HERE!!
else
   console.log(ev);
}

2 个答案:

答案 0 :(得分:6)

这是我发现最适合我的方式

var eventSource = new EventSource("path");
eventSource.onerror = eventSourceErrorFunction;
var eventSourceErrorFunction = function(event)
{
        if (event.eventPhase == EventSource.CLOSED) {
            that.eventSource.close();
            console.log("Event Source Closed");
        }  
} 

答案 1 :(得分:4)

关闭服务器端事件的正确方法是使用close方法。

https://developer.mozilla.org/en-US/docs/Server-sent_events/EventSource#Method_overview

所以你要使用:

var ser = new EventSource("path");
ser.onmessage = function (ev) {
    if (!ev)
       ser.close();
    else
       console.log(ev);
};

JavaScript区分大小写,因此您无法使用.Close(),因为它与.close()不同,在这种情况下将不会定义。