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