()
| 514 | }); |
| 515 | |
| 516 | const createSocket = () => { |
| 517 | const [socket, _isConnected, _isWorkerReady, controls] = createImageDataWS( |
| 518 | `ws://localhost:${cameraWsPort}`, |
| 519 | updateFrameState, |
| 520 | () => commands.refreshCameraFeed().catch(() => {}), |
| 521 | { powerPreference: "low-power" }, |
| 522 | ); |
| 523 | canvasControls = controls; |
| 524 | initCanvasControls(); |
| 525 | |
| 526 | socket.addEventListener("open", () => { |
| 527 | lastFrameTime = Date.now(); |
| 528 | setHasFrame(false); |
| 529 | setFrameDimensions(null); |
| 530 | }); |
| 531 | |
| 532 | socket.addEventListener("close", () => { |
| 533 | if (canvasControls === controls) { |
| 534 | canvasControls = undefined; |
| 535 | } |
| 536 | if (ws === socket) ws = undefined; |
| 537 | scheduleReconnect(); |
| 538 | }); |
| 539 | |
| 540 | socket.addEventListener("error", () => { |
| 541 | controls.dispose(); |
| 542 | }); |
| 543 | |
| 544 | return socket; |
| 545 | }; |
| 546 | |
| 547 | const scheduleReconnect = () => { |
| 548 | if ( |
no test coverage detected