39 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			HTML
		
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			HTML
		
	
	
<html>
 | 
						|
    <header>
 | 
						|
        <title>@title</title>
 | 
						|
        <meta charset="utf-8"/>
 | 
						|
	    @css 'assets/site.css'
 | 
						|
    </header>
 | 
						|
    <body>
 | 
						|
        <h1>@title</h1>
 | 
						|
        <button>Close the connection</button>
 | 
						|
        <ul></ul>
 | 
						|
        <script>
 | 
						|
         "use strict";
 | 
						|
         var button = document.querySelector('button');
 | 
						|
         var eventList = document.querySelector('ul');
 | 
						|
         const evtSource = new EventSource('/sse');
 | 
						|
         evtSource.onerror = function() { console.log("EventSource failed."); };
 | 
						|
         console.log(evtSource.withCredentials);
 | 
						|
         console.log(evtSource.readyState);
 | 
						|
         console.log(evtSource.url);
 | 
						|
         evtSource.onopen = function() {
 | 
						|
             console.log("Connection to server opened.");
 | 
						|
         };
 | 
						|
         evtSource.onmessage = function(e) {
 | 
						|
             var newElement = document.createElement("li");
 | 
						|
             newElement.textContent = "message: " + e.data;
 | 
						|
             eventList.appendChild(newElement);
 | 
						|
         };
 | 
						|
         evtSource.addEventListener("ping", function(e) {
 | 
						|
             console.log(e)
 | 
						|
             var newElement = document.createElement("li");
 | 
						|
             var obj = JSON.parse(e.data);
 | 
						|
             newElement.innerHTML = "ping at " + obj.time + ' server data: ' + e.data;
 | 
						|
             eventList.appendChild(newElement);
 | 
						|
         }, false);
 | 
						|
         button.onclick = function() { console.log('Connection closed'); evtSource.close(); };
 | 
						|
        </script>
 | 
						|
    </body>
 | 
						|
</html>
 |