yuntian-deng commited on
Commit
c59c4c4
·
1 Parent(s): f87bd61

Update static/index.html

Browse files
Files changed (1) hide show
  1. static/index.html +40 -7
static/index.html CHANGED
@@ -12,10 +12,48 @@
12
  const canvas = document.getElementById('displayCanvas');
13
  const ctx = canvas.getContext('2d');
14
 
15
- let socket = new WebSocket(`wss://${window.location.host}/ws`);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  // Capture mouse movements and clicks
18
  canvas.addEventListener("mousemove", function (event) {
 
19
  let rect = canvas.getBoundingClientRect();
20
  let x = event.clientX - rect.left;
21
  let y = event.clientY - rect.top;
@@ -27,6 +65,7 @@
27
  });
28
 
29
  canvas.addEventListener("click", function (event) {
 
30
  let rect = canvas.getBoundingClientRect();
31
  let x = event.clientX - rect.left;
32
  let y = event.clientY - rect.top;
@@ -36,12 +75,6 @@
36
  "mouse_position": [x, y]
37
  }));
38
  });
39
-
40
- // Receive predicted frames and render them on the canvas
41
- socket.onmessage = function (event) {
42
- ctx.fillStyle = "black"; // Placeholder rendering
43
- ctx.fillRect(0, 0, canvas.width, canvas.height);
44
- };
45
  </script>
46
  </body>
47
  </html>
 
12
  const canvas = document.getElementById('displayCanvas');
13
  const ctx = canvas.getContext('2d');
14
 
15
+ let socket;
16
+ let isConnected = false;
17
+
18
+ function connect() {
19
+ socket = new WebSocket(`wss://${window.location.host}/ws`);
20
+
21
+ socket.onopen = function(event) {
22
+ console.log("WebSocket connection established");
23
+ isConnected = true;
24
+ };
25
+
26
+ socket.onclose = function(event) {
27
+ console.log("WebSocket connection closed. Attempting to reconnect...");
28
+ isConnected = false;
29
+ setTimeout(connect, 3000); // Attempt to reconnect after 3 seconds
30
+ };
31
+
32
+ socket.onerror = function(error) {
33
+ console.error("WebSocket error:", error);
34
+ };
35
+
36
+ // Receive predicted frames and render them on the canvas
37
+ socket.onmessage = function (event) {
38
+ // Parse the received JSON data
39
+ const data = JSON.parse(event.data);
40
+ if (data.image) {
41
+ // Create an image object from the base64 encoded string
42
+ const img = new Image();
43
+ img.onload = function() {
44
+ ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
45
+ };
46
+ img.src = 'data:image/png;base64,' + data.image;
47
+ }
48
+ };
49
+ }
50
+
51
+ // Initial connection
52
+ connect();
53
 
54
  // Capture mouse movements and clicks
55
  canvas.addEventListener("mousemove", function (event) {
56
+ if (!isConnected) return;
57
  let rect = canvas.getBoundingClientRect();
58
  let x = event.clientX - rect.left;
59
  let y = event.clientY - rect.top;
 
65
  });
66
 
67
  canvas.addEventListener("click", function (event) {
68
+ if (!isConnected) return;
69
  let rect = canvas.getBoundingClientRect();
70
  let x = event.clientX - rect.left;
71
  let y = event.clientY - rect.top;
 
75
  "mouse_position": [x, y]
76
  }));
77
  });
 
 
 
 
 
 
78
  </script>
79
  </body>
80
  </html>