From c01e2ab6f06a34f3c786a4d8584c770d5cfdec31 Mon Sep 17 00:00:00 2001 From: QuiteAFancyEmerald <46467239+QuiteAFancyEmerald@users.noreply.github.com> Date: Tue, 16 Jul 2024 16:11:34 -0700 Subject: [PATCH] fixed "there are no bare clients" error --- views/assets/js/register-sw.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/views/assets/js/register-sw.js b/views/assets/js/register-sw.js index a6774a02..0e1f351f 100644 --- a/views/assets/js/register-sw.js +++ b/views/assets/js/register-sw.js @@ -1,6 +1,6 @@ const stockSW = "/uv/sw.js"; const swAllowedHostnames = ["localhost", "127.0.0.1"]; -let connection = new BareMux.BareMuxConnection("/baremux/worker.js") +const connection = new BareMux.BareMuxConnection("/baremux/worker.js"); async function registerSW() { if (!navigator.serviceWorker) { @@ -12,14 +12,21 @@ async function registerSW() { throw new Error("Your browser doesn't support service workers."); } + let wispUrl = (location.protocol === "https:" ? "wss" : "ws") + "://" + location.host + "/wisp/"; - await connection.setTransport("/epoxy/index.mjs", [{ wisp: wispUrl }]) + await connection.setTransport("/epoxy/index.mjs", [{ wisp: wispUrl }]); await navigator.serviceWorker.register(stockSW); +} -// When testing proxy support CLEAR service workers from 8080 (or whatever current port you are using) - -// navigator.serviceWorker.register(stockSW).then(register => register.unregister().then(bool => console.log("Unregistered: " + bool))); - +async function setupTransportOnLoad() { + const conn = new BareMuxConnection("/baremux/worker.js"); + if (await conn.getTransport() !== "/baremux/module.js") { + await conn.setTransport("/baremux/module.js", [{ wisp: wispUrl }]); + } } -registerSW(); \ No newline at end of file +// Run transport setup on page load +setupTransportOnLoad(); + +// Register service worker +registerSW();