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