更改Server-Sent事件的源(url)

时间:2017-02-24 18:50:47

标签: javascript php server-sent-events

如何更改EventSource声明中的源集?

我尝试过这样的事情:

var source = new EventSource("/blahblah.php?path=" + (window.location.pathname));
// Few lines later...
source.url = "/blahblah.php?path=" + url;

但是,source.url保持不变......

这甚至可能吗?或者也许有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:2)

不,这是不可能的。传递给EventSource()的新网址会创建一个新的EventSource对象。

答案 1 :(得分:1)

guest271314向我提出了很多解决方案,但对我来说,与sse保持相比会更好,更快,更简单。

我通过关闭和删除(所有必要的)源变量来更改源。

我就这样做了:

source.url = "/blahblah2.php";

source.close();
delete source;

//Redefine source

重要提示:如果您使用var定义了来源,那么这项工作就无法完成!重新定义也应该没有它!