From 65d2ac88db74f9b035c97cff3eaa66cac41b742f Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 7 Aug 2022 02:33:13 +0200 Subject: [PATCH] improve websocket behavior --- frontend/src/lib/components/Editor.svelte | 34 ++++++++++++++--------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/frontend/src/lib/components/Editor.svelte b/frontend/src/lib/components/Editor.svelte index bdff4e26f6..8e23bde819 100644 --- a/frontend/src/lib/components/Editor.svelte +++ b/frontend/src/lib/components/Editor.svelte @@ -212,14 +212,33 @@ try { const webSocket = new WebSocket(url) - webSocket.onopen = () => { + webSocket.onopen = async () => { const socket = toSocket(webSocket) const reader = new WebSocketMessageReader(socket) const writer = new WebSocketMessageWriter(socket) const languageClient = createLanguageClient({ reader, writer }, name, options) websockets.push([languageClient, webSocket]) - languageClient.start() + reader.onClose(async () => { + try { + console.log('CLOSE') + websocketAlive[name] = false + await languageClient.stop() + } catch (err) { + console.error(err) + } + }) + socket.onClose((_code, _reason) => { + websocketAlive[name] = false + }) + + try { + await languageClient.start() + } catch (err) { + console.error(err) + throw new Error(err) + } + lastWsAttempt = new Date() nbWsAttempt = 0 if (name == 'deno') { @@ -234,17 +253,6 @@ } }) } - reader.onClose(() => { - try { - console.log('CLOSE') - languageClient.stop() - } catch (err) { - console.error(err) - } - }) - socket.onClose((_code, _reason) => { - websocketAlive[name] = false - }) websocketAlive[name] = true }