You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.2 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Flask-Sock Demo</title>
</head>
<body>
<h1>Flask-Sock Demo</h1>
<div id="log"></div>
<br />
<form id="form">
<label for="text">Input: </label>
<input type="text" id="text" autofocus />
</form>
<script>
const log = (text, color) => {
document.getElementById(
"log"
).innerHTML += `<span style="color: ${color}">${text}</span><br>`;
};
console.log(location.protocol);
console.log(
location.protocol == "https:"
? "wss://"
: "ws://" +
location.host +
location.pathname.replace(new RegExp("\/" + "$"), "") +
"/echo/"
);
const socket = new WebSocket(
location.protocol == "https:"
? "wss://"
: "ws://" +
location.host +
location.pathname.replace(new RegExp("\/" + "$"), "") +
"/echo/"
);
socket.addEventListener("message", (ev) => {
log("<<< " + ev.data, "blue");
});
document.getElementById("form").onsubmit = (ev) => {
ev.preventDefault();
const textField = document.getElementById("text");
log(">>> " + textField.value, "red");
socket.send(textField.value);
textField.value = "";
};
</script>
</body>
</html>