testando latencia
Deploy / Deploy (push) Has been cancelled Details

This commit is contained in:
JotaChina 2026-02-24 18:51:41 -03:00
parent 477b693b79
commit 16532a9ace
2 changed files with 14 additions and 20 deletions

View File

@ -679,7 +679,6 @@ document.addEventListener("DOMContentLoaded", () => {
} }
}); });
} }
// Criar sala (gera link com ?room=...) // Criar sala (gera link com ?room=...)
if (createRoomBtn) { if (createRoomBtn) {
createRoomBtn.addEventListener("click", () => { createRoomBtn.addEventListener("click", () => {
@ -687,32 +686,26 @@ document.addEventListener("DOMContentLoaded", () => {
const currentParams = new URLSearchParams(window.location.search); const currentParams = new URLSearchParams(window.location.search);
if (currentParams.has("room")) { if (currentParams.has("room")) {
alert( alert(
`Você já está na sala: ${currentParams.get( `Você já está na sala: ${currentParams.get("room")}\n\nCopie o link da barra de endereços para convidar.`
"room"
)}\n\Copie o link da barra de endereços para convidar.`
); );
return; return;
} }
const defaultName = `sessao-${Math.random()
.toString(36)
.substring(2, 7)}`;
// 🔥 O PEDÁGIO: Pede o login ANTES de avisar o servidor!
const myName = await getOrFetchUsername();
// Agora sim envia com os dados completos // 1. Gera o nome padrão
socket.emit("join_room", { const defaultName = `sessao-${Math.random().toString(36).substring(2, 7)}`;
roomName: novaSala,
userName: myName // 2. Pergunta qual nome o usuário quer
});
const roomName = prompt( const roomName = prompt(
"Digite um nome para a sala compartilhada:", "Digite um nome para a sala compartilhada:",
defaultName defaultName
); );
if (!roomName) return; if (!roomName) return; // Se o usuário cancelar, para aqui.
// 3. Monta o link
const currentUrl = window.location.origin + window.location.pathname; const currentUrl = window.location.origin + window.location.pathname;
const shareableLink = `${currentUrl}?room=${encodeURIComponent( const shareableLink = `${currentUrl}?room=${encodeURIComponent(roomName)}`;
roomName
)}`; // 4. Copia para a área de transferência
try { try {
navigator.clipboard.writeText(shareableLink); navigator.clipboard.writeText(shareableLink);
alert( alert(
@ -723,6 +716,9 @@ document.addEventListener("DOMContentLoaded", () => {
`Link da sala: ${shareableLink}\n\nA página será recarregada agora para entrar na nova sala.` `Link da sala: ${shareableLink}\n\nA página será recarregada agora para entrar na nova sala.`
); );
} }
// 5. Recarrega a página!
// (Isso vai ativar o socket.on("connect") que criamos, e ele vai pedir o Login perfeitamente!)
window.location.href = shareableLink; window.location.href = shareableLink;
}); });
} }

View File

@ -50,7 +50,6 @@ import { updateStepUI, renderPatternEditor } from "./pattern/pattern_ui.js";
import { PORT_SOCK } from "./config.js"; import { PORT_SOCK } from "./config.js";
import { DEFAULT_PROJECT_XML } from "./utils.js" import { DEFAULT_PROJECT_XML } from "./utils.js"
// --- NO TOPO DO SEU socket.js ---
export let USER_NAME = null; export let USER_NAME = null;
export let currentRoom = null; export let currentRoom = null;
let roomSeq = 0; let roomSeq = 0;
@ -191,7 +190,6 @@ function delayFromServerTimeMs(scheduleAtServerMs) {
let lastActionTimeout = null; let lastActionTimeout = null;
let lastBroadcastTimeout = null; let lastBroadcastTimeout = null;
let pendingToken = null; let pendingToken = null;
let lastActionToken = 0;
const processedTokens = new Set(); const processedTokens = new Set();
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------