Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

// META: title=EventSource: reconnection
function doReconn(url, title) {
var test = async_test(document.title + " " + title)
test.step(function() {
var source = new EventSource(url)
source.onmessage = test.step_func(function(e) {
assert_equals(e.data, "data")
source.close()
test.done()
})
})
}
doReconn("resources/status-reconnect.py?status=200",
"200")
var t = async_test(document.title + ", test reconnection events");
t.step(function() {
var opened = false, reconnected = false,
source = new EventSource("resources/status-reconnect.py?status=200&ok_first&id=2");
source.onerror = t.step_func(function(e) {
assert_equals(e.type, 'error');
assert_equals(source.readyState, source.CONNECTING, "readyState");
assert_true(opened, "connection is opened earlier");
reconnected = true;
});
source.onmessage = t.step_func(function(e) {
if (!opened) {
opened = true;
assert_false(reconnected, "have reconnected before first message");
assert_equals(e.data, "ok");
}
else {
assert_true(reconnected, "Got reconnection event");
assert_equals(e.data, "data");
source.close()
t.done()
}
});
});