admin管理员组

文章数量:1301545

I want to know how to close a server-sent events via JavaScript. Below is my dummy code:

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

I want to know how to close a server-sent events via JavaScript. Below is my dummy code:

var ser=new EventSource("path");
ser.onmessage=function(ev){
if(!ev)
   //want to close HERE!!
else
   console.log(ev);
}
Share Improve this question edited Sep 4, 2014 at 3:07 JasonMArcher 15k22 gold badges58 silver badges53 bronze badges asked Apr 5, 2013 at 16:57 ahhmarrahhmarr 2,3204 gold badges27 silver badges30 bronze badges 2
  • developer.mozilla.org/en-US/docs/Server-sent_events/… - the .close() method? – Ian Commented Apr 5, 2013 at 16:58
  • 1 sorry i was writing Close() all this time..fixed – ahhmarr Commented Apr 5, 2013 at 17:06
Add a comment  | 

2 Answers 2

Reset to default 13

Here is the way that I found worked best for me

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");
        }  
} 

The correct way to close a server side event is with the close method.

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

So you'd use:

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

JavaScript is case sensitive, so you can't use .Close(), as it's a different thing than .close() and will be undefined in this case.

本文标签: javascriptHow to close ServerSent Events eventsStack Overflow