636 B23 lines
Blame
1// Connect to the server and reload the page if the server sends a reload message
2const connectToEvents = () => {
3 const events = new EventSource('/events');
4 const loadTime = Date.now();
5 events.onmessage = (event) => {
6 const time = JSON.parse(event.data);
7 if (time && time > loadTime) {
8 location.reload();
9 }
10 };
11 events.onerror = (error) => {
12 console.error(error);
13 events.close();
14 // Try to reconnect after 1 second in case of errors
15 setTimeout(connectToEvents, 1000);
16 };
17 events.onopen = () => {
18 console.log('Connected to live reload server');
19 };
20};
21
22setTimeout(connectToEvents, 500);
23