| 8863 | }); |
| 8864 | ws.addEventListener("close", onDisconnect); |
| 8865 | ws.addEventListener("error", () => { |
| 8866 | }); |
| 8867 | } |
| 8868 | function handleControlMessage(msg) { |
| 8869 | switch (msg.type) { |
| 8870 | case "connected": |
| 8871 | break; |
| 8872 | case "pong": |
| 8873 | latencyEl.textContent = `${Date.now() - lastPingSent}ms`; |
| 8874 | break; |
| 8875 | case "error": |
| 8876 | term.writeln(`\r |
| 8877 | \x1B[31m[error] ${msg.message}\x1B[0m`); |
| 8878 | break; |
| 8879 | case "exit": |
| 8880 | term.writeln( |
| 8881 | `\r |
| 8882 | \x1B[33m[session ended \u2014 exit code ${msg.exitCode ?? 0}]\x1B[0m` |
| 8883 | ); |
| 8884 | break; |
| 8885 | } |
| 8886 | } |