()
| 463 | let cameraCanvasRef: HTMLCanvasElement | undefined; |
| 464 | |
| 465 | const closeSocket = () => { |
| 466 | const socket = ws; |
| 467 | const controls = canvasControls; |
| 468 | ws = undefined; |
| 469 | canvasControls = undefined; |
| 470 | controls?.dispose(); |
| 471 | if ( |
| 472 | socket && |
| 473 | socket.readyState !== WebSocket.CLOSING && |
| 474 | socket.readyState !== WebSocket.CLOSED |
| 475 | ) { |
| 476 | socket.close(); |
| 477 | } |
| 478 | }; |
| 479 | |
| 480 | const initCanvasControls = () => { |
| 481 | if (!canvasControls || !cameraCanvasRef) return; |