diff --git a/global.gd b/global.gd index f48fc29..cf0ca82 100644 --- a/global.gd +++ b/global.gd @@ -4,7 +4,7 @@ const MultiplayerClient = preload("multiplayer_client.gd") onready var client = MultiplayerClient.new() -const MULTIPLAYER_URL = "ws://localhost:9080" +const MULTIPLAYER_URL = "wss://webrtc-signaller.deno.dev/" func _ready(): client.connect("lobby_joined", self, "_lobby_joined") diff --git a/server.ts b/server.ts index ac9d5e9..6219cef 100644 --- a/server.ts +++ b/server.ts @@ -216,50 +216,54 @@ for await (const conn of server) { const httpConn = Deno.serveHttp(conn); for await (const requestEvent of httpConn) { if (requestEvent) { - const { socket, response } = Deno.upgradeWebSocket( - requestEvent.request, - ); - const id = randomId(); - const peer = new Peer(id, socket); - socket.onopen = (_ev) => { - if (peersCount >= MAX_PEERS) { - socket.close(4000, STR_TOO_MANY_PEERS); - return; - } - peersCount++; - }; - socket.onmessage = (ev) => { - try { - parseMsg(peer, ev.data); - } catch (e) { - const code = e.code || 4000; - console.log(`Error parsing message from ${id}:\n` + ev.data); - socket.close(code, e.message); - } - }; - socket.onclose = (ev) => { - peersCount--; - console.log( - `Connection with peer ${peer.id} closed ` + - `with reason: ${ev.reason}`, + try { + const { socket, response } = Deno.upgradeWebSocket( + requestEvent.request, ); - if ( - peer.lobby && - lobbies.has(peer.lobby) && - lobbies.get(peer.lobby).leave(peer) - ) { - lobbies.delete(peer.lobby); - console.log(`Deleted lobby ${peer.lobby}`); - console.log(`Open lobbies: ${lobbies.size}`); - peer.lobby = ""; - } - if (peer.timeout >= 0) { - clearTimeout(peer.timeout); - peer.timeout = -1; - } - }; - socket.onerror = (e) => console.error("WebSocket error:", e); - requestEvent.respondWith(response); + const id = randomId(); + const peer = new Peer(id, socket); + socket.onopen = (_ev) => { + if (peersCount >= MAX_PEERS) { + socket.close(4000, STR_TOO_MANY_PEERS); + return; + } + peersCount++; + }; + socket.onmessage = (ev) => { + try { + parseMsg(peer, ev.data); + } catch (e) { + const code = e.code || 4000; + console.log(`Error parsing message from ${id}:\n` + ev.data); + socket.close(code, e.message); + } + }; + socket.onclose = (ev) => { + peersCount--; + console.log( + `Connection with peer ${peer.id} closed ` + + `with reason: ${ev.reason}`, + ); + if ( + peer.lobby && + lobbies.has(peer.lobby) && + lobbies.get(peer.lobby).leave(peer) + ) { + lobbies.delete(peer.lobby); + console.log(`Deleted lobby ${peer.lobby}`); + console.log(`Open lobbies: ${lobbies.size}`); + peer.lobby = ""; + } + if (peer.timeout >= 0) { + clearTimeout(peer.timeout); + peer.timeout = -1; + } + }; + socket.onerror = (e) => console.error("WebSocket error:", e); + requestEvent.respondWith(response); + } catch (e) { + console.log(`Error during connection:`, e); + } } } })();