From fb4721196b65a4d1ea9d32cf3c82ab5b8546773b Mon Sep 17 00:00:00 2001 From: MathMan05 Date: Tue, 30 Jul 2024 21:04:23 -0500 Subject: [PATCH] fixed delayed WS bug --- .dist/localuser.js | 28 ++++++++++++++++++---------- webpage/localuser.ts | 27 ++++++++++++++++++--------- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/.dist/localuser.js b/.dist/localuser.js index 7eeae26..0641fed 100644 --- a/.dist/localuser.js +++ b/.dist/localuser.js @@ -157,16 +157,24 @@ class Localuser { w.write(arr.buffer); arr = new Uint8Array(); //console.log(data,test); - const read = (await r.read()); - const data = new TextDecoder().decode(read.value); - build += data; - console.log("temp"); - try { - temp = JSON.parse(build); - build = ""; - } - catch { - return; + while (true) { + const read = (await r.read()); + const data = new TextDecoder().decode(read.value); + if (data === "") { + break; + } + build += data; + console.log("temp"); + try { + temp = JSON.parse(build); + build = ""; + if (temp.op === 0 && temp.t === "READY") { + returny(); + } + this.handleEvent(temp); + } + catch { + } } } else { diff --git a/webpage/localuser.ts b/webpage/localuser.ts index 0577884..d85bf8d 100644 --- a/webpage/localuser.ts +++ b/webpage/localuser.ts @@ -167,15 +167,23 @@ class Localuser{ w.write(arr.buffer); arr=new Uint8Array(); //console.log(data,test); - const read=(await r.read()); - const data=new TextDecoder().decode(read.value); - build+=data; - console.log("temp"); - try{ - temp=JSON.parse(build); - build=""; - }catch{ - return; + while(true){ + const read=(await r.read()); + const data=new TextDecoder().decode(read.value); + if(data===""){ + break; + } + build+=data; + console.log("temp"); + try{ + temp=JSON.parse(build); + build=""; + if(temp.op===0&&temp.t==="READY"){ + returny(); + } + this.handleEvent(temp); + }catch{ + } } }else{ temp=JSON.parse(event.data); @@ -184,6 +192,7 @@ class Localuser{ returny(); } this.handleEvent(temp); + }); this.ws.addEventListener("close", event => {