ID de cliente diferentes de Socket.io

Estoy tratando de hacer un juego multijugador simple usando websockets y socket.io.

Tenemos la mayoría de las funciones funcionando, y nuestro problema ahora es descubrir quién es el jugador ganador.

Entonces, la solución que estamos tratando de implementar en este momento es obtener sockets en tiempo de ejecución, y cuando un jugador muere, envía un mensaje al servidor. El servidor al recibir este mensaje agrega una propiedad 'muerta' al socket. Entonces socket.dead = true se establece cuando el jugador muere.

Luego verificamos una lista de sockets conectados (obtenidos dinámicamente) para ver si solo queda un jugador vivo (verificando si socket.dead está definido). Una cosa de la que nos dimos cuenta es que los socket.ids de los sockets conectados realmente cambian, y esto está demostrando ser un problema para nosotros...

La pregunta es dónde y cuándo cambian los identificadores de socket y cómo podemos detectar estos cambios para actualizar los datos de nuestro juego.

Muchas Gracias

preguntado el 12 de junio de 12 a las 18:06

No uso node.js, pero en mis juegos websocket simplemente tengo una identificación de usuario en cada mensaje del cliente, esta identificación la proporciona el servidor en la conexión (reutilizada a veces si se detecta el mismo usuario y almacenada en el lado del cliente localStorage ). -

1 Respuestas

No debe verificar la identificación del socket, sino que debe autenticar al usuario cada vez que se conecta a Socket.IO (socket.user = username).

Luego, en lugar de verificar la identificación de los jugadores que están "vivos", puede verificar sus nombres de usuario.

Más información sobre el manejo de sesiones con Express & Socket.IO aquí: http://www.danielbaulig.de/socket-ioexpress/

Respondido el 12 de junio de 12 a las 20:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.