From 0c8554f49487b0fe409a590c365e6ea896f819ae Mon Sep 17 00:00:00 2001 From: Christoph Stahl Date: Thu, 12 Jun 2025 23:14:52 +0200 Subject: [PATCH] Reworked registering clients into the initial connection --- src/App.vue | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/App.vue b/src/App.vue index cf3a350..d31d53c 100644 --- a/src/App.vue +++ b/src/App.vue @@ -191,7 +191,11 @@ function skip(uuid) { function registerSocketEvents() { state.socket = io(state.value.server, { - "reconnectionAttempts": 3, + auth: { + type: "web", + room: state.value.room, + secret: state.value.secret, + } } ) state.socket.on("search-results", (results) => { @@ -199,13 +203,30 @@ function registerSocketEvents() { state.value.search.searchResults = results.results }) + state.socket.on("disconnect", (reason) => { + console.warn("Disconnected from server") + state.value.joined = false + state.value.join_msg = "Disconnected from server, please check your connection and try again." + }) state.socket.on("connect", () => { joinRoom() }) + state.socket.on("connect_error", (err) => { + console.warn("Connection error:", err.message); + state.value.joined = false; + state.value.join_msg = "No such room!
" + + "Please use the correct room code your organizer provided you.
" + + "To host your own syng powered karaoke events, please download and " + + "install Syng" + }) state.socket.io.on("reconnect", () => { joinRoom() }) state.socket.io.on("reconnect_error", () => { state.value.joined = false; }) + state.socket.on("admin", (is_admin) => { + console.log("Admin status: " + is_admin) + state.value.admin = is_admin + }) state.socket.on("state", (val) => { state.value.queue=val.queue @@ -266,7 +287,14 @@ function registerSocketEvents() { function joinRoom() { console.log("Joining room " + state.value.room) - state.socket.emit("register-web", {"room": state.value.room}, (response) => { + localStorage.name = state.value.name + localStorage.server = state.value.server + localStorage.room = state.value.room + localStorage.secret = state.value.secret + localStorage.uid = state.value.uid + state.value.joined = true + router.push({name: "room", params: {room: state.value.room}}) + /* state.socket.emit("register-web", {"room": state.value.room}, (response) => { if(response === true) { localStorage.name = state.value.name localStorage.server = state.value.server @@ -287,7 +315,7 @@ function joinRoom() { "install Syng" state.socket.disconnect() } - }) + }) */ }