diff options
Diffstat (limited to 'templates')
| -rw-r--r-- | templates/index.html | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..d0b0630 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,92 @@ +<!DOCTYPE html> +<meta charset="utf-8" /> +<title>snekboxweb</title> +<script language="javascript" type="text/javascript"> + +let _ready = false +var output; + +function init(){ + output = document.getElementById("output"); + websocketHandler(); +} + +function websocketHandler(){ + var here = window.location.host; + var wsUri = `ws://${here}/ws`; + websocket = new WebSocket(wsUri); + websocket.onopen = function(evt) { onOpen(evt) }; + websocket.onclose = function(evt) { onClose(evt) }; + websocket.onmessage = function(evt) { onMessage(evt) }; + websocket.onerror = function(evt) { onError(evt) }; +} + +function onOpen(evt){ + _ready = true + console.log("CONNECTED"); +} + +function onClose(evt){ + _ready = false + console.log("DISCONNECTED"); +} + +function onMessage(evt){ + writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>'); +} + +function exit(){ + websocket.close(); +} + +function onError(evt){ + _ready = false + writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data); +} + +function sendMessage(msg){ + waitForSocketConnection(function(){ + websocket.send(msg); + }); + console.log("sent message "+msg) +} + +function waitForSocketConnection(callback){ + setTimeout( + function () { + if (_ready === true) { + if(callback != null){ + callback();} + return; + } + else { + waitForSocketConnection(callback);} + + }, 500); // milliseconds +} + +function writeToScreen(message){ + var pre = document.createElement("p"); + pre.style.wordWrap = "break-word"; + pre.innerHTML = message; + output.appendChild(pre); +} + +function sendFromInput(){ + var msg = document.getElementById("field1").value; + sendMessage(msg) +} + +window.addEventListener("load", init, false); + +</script> + +<textarea rows="4" cols="50" type="text" id="field1"> +def sum(a,b): + return a+b +print( sum(1,2) ) +</textarea> +<br> +<button onclick="sendFromInput()">Send</button> +<button onclick="exit()">disconnect from websocket</button> +<div id="output"></div> |