let connected = false; let socket; onmessage = async (event) => { if (!connected) { socket = new WebSocket(`wss://${event.data.host}/ws`); socket.binaryType = 'arraybuffer'; await new Promise((resolve) => { socket.onopen = resolve; }); socket.onmessage = (event) => { postMessage(event.data); }; connected = true; return; } socket.send(event.data); };