Files
bumble_fork/examples/keyboard.html
Gilles Boccon-Gibod c2959dadb4 formatting and linting automation
Squashed commits:
[cd479ba] formatting and linting automation
[7fbfabb] formatting and linting automation
[c4f9505] fix after rebase
[f506ad4] rename job
[441d517] update doc (+7 squashed commits)
[2e1b416] fix invoke and github action
[6ae5bb4] doc for git blame
[44b5461] add GitHub action
[b07474f] add docs
[4cd9a6f] more linter fixes
[db71901] wip
[540dc88] wip
2022-12-15 23:07:17 -08:00

62 lines
2.3 KiB
HTML

<html>
<head>
</head>
<body>
Server Port <input id="port" type="text" value="8989"></input> <button onclick="connect()">Connect</button><br>
<div id="socketState"></div>
<div id="mouseInfo"></div>
<div id="keyInfo"></div>
<br>
<div id="frame" style="border: 2px solid; height:300"></div>
<script>
let portInput = document.getElementById("port")
let mouseInfo = document.getElementById("mouseInfo")
let ketInfo = document.getElementById("keyInfo")
let frame = document.getElementById("frame")
let socketState = document.getElementById("socketState")
let socket
frame.addEventListener('mousemove', onMouseMove)
document.addEventListener('keydown', onKeyDown)
document.addEventListener('keyup', onKeyUp)
function connect() {
socket = new WebSocket(`ws://localhost:${portInput.value}`);
socket.onopen = _ => {
socketState.innerText = 'OPEN'
}
socket.onclose = _ => {
socketState.innerText = 'CLOSED'
}
socket.onerror = (error) => {
socketState.innerText = 'ERROR'
console.log(`ERROR: ${error}`)
}
}
function send(message) {
if (socket && socket.readyState == WebSocket.OPEN) {
socket.send(JSON.stringify(message))
}
}
function onMouseMove(event) {
//console.log(event.clientX, event.clientY)
mouseInfo.innerText = `MOUSE: x=${event.clientX}, y=${event.clientY}`
send({ type:'mousemove', x: event.clientX, y: event.clientY })
}
function onKeyDown(event) {
//console.log(event)
keyInfo.innerText = `KEYDOWN: ${event.key}`
send({ type:'keydown', key: event.key })
}
function onKeyUp(event) {
//console.log(event)
keyInfo.innerText = `KEYUP: ${event.key}`
send({ type:'keyup', key: event.key })
}
</script>
</body>
</html>