1d4afb5ceSopenharmony_cidocument.addEventListener("DOMContentLoaded", function() { 2d4afb5ceSopenharmony_ci 3d4afb5ceSopenharmony_civar head = 0, tail = 0, ring = new Array(), es; 4d4afb5ceSopenharmony_ci 5d4afb5ceSopenharmony_ci es = new EventSource("/sse/sourcename"); 6d4afb5ceSopenharmony_ci try { 7d4afb5ceSopenharmony_ci es.onopen = function() { 8d4afb5ceSopenharmony_ci // console.log("EventSource opened"); 9d4afb5ceSopenharmony_ci document.getElementById("r").disabled = 0; 10d4afb5ceSopenharmony_ci }; 11d4afb5ceSopenharmony_ci 12d4afb5ceSopenharmony_ci es.onmessage = function got_packet(msg) { 13d4afb5ceSopenharmony_ci var n, s = ""; 14d4afb5ceSopenharmony_ci 15d4afb5ceSopenharmony_ci // console.log(msg.data); 16d4afb5ceSopenharmony_ci ring[head] = msg.data + "\n"; 17d4afb5ceSopenharmony_ci head = (head + 1) % 50; 18d4afb5ceSopenharmony_ci if (tail === head) 19d4afb5ceSopenharmony_ci tail = (tail + 1) % 50; 20d4afb5ceSopenharmony_ci 21d4afb5ceSopenharmony_ci n = tail; 22d4afb5ceSopenharmony_ci do { 23d4afb5ceSopenharmony_ci s = s + ring[n]; 24d4afb5ceSopenharmony_ci n = (n + 1) % 50; 25d4afb5ceSopenharmony_ci } while (n !== head); 26d4afb5ceSopenharmony_ci 27d4afb5ceSopenharmony_ci document.getElementById("r").value = s; 28d4afb5ceSopenharmony_ci document.getElementById("r").scrollTop = 29d4afb5ceSopenharmony_ci document.getElementById("r").scrollHeight; 30d4afb5ceSopenharmony_ci }; 31d4afb5ceSopenharmony_ci 32d4afb5ceSopenharmony_ci /* there is no onclose() for EventSource */ 33d4afb5ceSopenharmony_ci 34d4afb5ceSopenharmony_ci } catch(exception) { 35d4afb5ceSopenharmony_ci alert("<p>Error" + exception); 36d4afb5ceSopenharmony_ci } 37d4afb5ceSopenharmony_ci 38d4afb5ceSopenharmony_ci}, false); 39