Spaces:
Runtime error
Runtime error
Commit
·
f70fe7a
1
Parent(s):
e62ac65
Update static/index.html
Browse files- static/index.html +25 -4
static/index.html
CHANGED
|
@@ -51,6 +51,22 @@
|
|
| 51 |
// Initial connection
|
| 52 |
connect();
|
| 53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
// Capture mouse movements and clicks
|
| 55 |
canvas.addEventListener("mousemove", function (event) {
|
| 56 |
if (!isConnected) return;
|
|
@@ -58,10 +74,13 @@
|
|
| 58 |
let x = event.clientX - rect.left;
|
| 59 |
let y = event.clientY - rect.top;
|
| 60 |
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
|
|
|
|
|
|
|
|
|
| 65 |
});
|
| 66 |
|
| 67 |
canvas.addEventListener("click", function (event) {
|
|
@@ -70,6 +89,8 @@
|
|
| 70 |
let x = event.clientX - rect.left;
|
| 71 |
let y = event.clientY - rect.top;
|
| 72 |
|
|
|
|
|
|
|
| 73 |
socket.send(JSON.stringify({
|
| 74 |
"action_type": "left_click",
|
| 75 |
"mouse_position": [x, y]
|
|
|
|
| 51 |
// Initial connection
|
| 52 |
connect();
|
| 53 |
|
| 54 |
+
let lastSentPosition = null;
|
| 55 |
+
let lastSentTime = 0;
|
| 56 |
+
const SEND_INTERVAL = 50; // Send updates every 50ms
|
| 57 |
+
|
| 58 |
+
function sendMousePosition(x, y, forceUpdate = false) {
|
| 59 |
+
const currentTime = Date.now();
|
| 60 |
+
if (forceUpdate || !lastSentPosition || currentTime - lastSentTime >= SEND_INTERVAL) {
|
| 61 |
+
socket.send(JSON.stringify({
|
| 62 |
+
"action_type": "move",
|
| 63 |
+
"mouse_position": [x, y]
|
| 64 |
+
}));
|
| 65 |
+
lastSentPosition = { x, y };
|
| 66 |
+
lastSentTime = currentTime;
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
// Capture mouse movements and clicks
|
| 71 |
canvas.addEventListener("mousemove", function (event) {
|
| 72 |
if (!isConnected) return;
|
|
|
|
| 74 |
let x = event.clientX - rect.left;
|
| 75 |
let y = event.clientY - rect.top;
|
| 76 |
|
| 77 |
+
// Client-side prediction
|
| 78 |
+
ctx.beginPath();
|
| 79 |
+
ctx.moveTo(lastSentPosition ? lastSentPosition.x : x, lastSentPosition ? lastSentPosition.y : y);
|
| 80 |
+
ctx.lineTo(x, y);
|
| 81 |
+
ctx.stroke();
|
| 82 |
+
|
| 83 |
+
sendMousePosition(x, y);
|
| 84 |
});
|
| 85 |
|
| 86 |
canvas.addEventListener("click", function (event) {
|
|
|
|
| 89 |
let x = event.clientX - rect.left;
|
| 90 |
let y = event.clientY - rect.top;
|
| 91 |
|
| 92 |
+
sendMousePosition(x, y, true);
|
| 93 |
+
|
| 94 |
socket.send(JSON.stringify({
|
| 95 |
"action_type": "left_click",
|
| 96 |
"mouse_position": [x, y]
|