Skip to content

Commit 5779d6d

Browse files
committed
Handle unclean close situations
1 parent b374d9f commit 5779d6d

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

web/frontend/src/lib/Console.svelte

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
2929
$: inactive = $sessionState === 'closed' || $sessionState === 'readonly';
3030
31+
let cleanClose = false;
32+
3133
class VirtualConsole {
3234
private container: HTMLDivElement;
3335
private ansiUp: any;
@@ -155,6 +157,7 @@
155157
sessionState.set("active");
156158
break;
157159
case "SESSION_CLOSED":
160+
cleanClose = true;
158161
virtualConsole.addLines(["\u001b[31mSession has been closed by the server.\u001b[0m"]);
159162
sessionState.set("closed");
160163
commandInput.disabled = true;
@@ -176,7 +179,13 @@
176179
};
177180
178181
socket.onclose = () => {
179-
virtualConsole.addLines(["\u001b[90mConnection closed.\u001b[0m"]);
182+
if (cleanClose) {
183+
virtualConsole.addLines(["\u001b[90mConnection closed.\u001b[0m"]);
184+
} else {
185+
virtualConsole.addLines(["\u001b[31mConnection lost unexpectedly. \u001b[90m(Sorry! This can happen when we deploy a new version of glua.dev)\u001b[0m"]);
186+
sessionState.set("closed");
187+
appendEndedCard(outputContainer);
188+
}
180189
commandInput.disabled = true;
181190
};
182191

0 commit comments

Comments
 (0)