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>
 |