Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

228
Visualizações
¿Cómo uso una sola conexión con socket.io?

Estoy haciendo un juego multijugador en tiempo real con socket.io y node.js, tengo un archivo html que ejecuta un script público para conectarme al servidor y ejecutar comandos, además de definir la biblioteca que necesito con

<script src="https://code.jquery.com/jquery-2.2.2.min.js"></script>

Tengo una función de conexión y desconexión en el archivo js público que tiene estas funciones:

 // send join request function joinlobby(room) { socket.emit("userJoined", room); } // emit when a player leaves function leavelobby(room) { socket.emit("userLeft", room); }

y cada vez que creo un nuevo socket dentro de la función con algo como

 // emit when a player leaves function leavelobby(room) { let socket = io(); socket.emit("userLeft", room); }

se ejecutará correctamente, sin embargo, si ambos tienen una conexión separada, causa problemas. Estaba tratando de que usaran la misma conexión let socket = io(); colocado encima de las funciones para usar el mismo socket, sin embargo, cuando el programa llega a esa línea, deja de ejecutar el archivo sin arrojar un error

¿Cómo podría usar una sola conexión al servidor y/o por qué el programa se desconecta cuando defino el socket fuera de una función?

Edite para mayor claridad: el problema no es querer una sola conexión para cada cliente, sino que cada cliente tiene múltiples conexiones cada vez que defino el socket en cada función respectiva. Mi objetivo es tener solo 1 conexión para cada cliente, pero la línea arroja un error

Perdón por la ambigüedad, soy nuevo en hacer preguntas aquí.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Cuando crea una conexión con el servidor de socket, cada cliente tendrá su propia conexión, si desea enviar un solo mensaje a varios clientes, debe usar las habitaciones. Es muy facil de usar:

 io.on("connection", socket => { socket.join("room1"); });

Si los clientes de inicio están conectados a la misma sala, podrá enviar un mensaje a esa sala.

 io.to("room1").emit("Hello every body");

Más información aquí: https://socket.io/docs/v3/rooms/

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda