如何关闭Server-Sent Events事件

ahh*_*arr 9 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);
}
Run Code Online (Sandbox Code Playgroud)

小智 7

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

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");
        }  
} 
Run Code Online (Sandbox Code Playgroud)


Ian*_*Ian 5

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

https://developer.mozilla.org/zh-CN/docs/Server-sent_events/EventSource#Method_overview

因此,您将使用:

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

JavaScript区分大小写,因此您不能使用.Close(),因为它与的情况不同.close(),在这种情况下将是不确定的。