Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
¿Es socket.id único a lo largo del tiempo, debería mantenerse privado?

Estoy escribiendo un juego para un gamejam (de tamaño limitado).

Quiero crear una tabla de clasificación y la forma más fácil de almacenar las entradas se basaría en el socket.id del jugador.

¿Puedo hacerlo con seguridad o existe la posibilidad de que se le vuelva a dar a un jugador en el futuro?

Además, ¿debo mantenerlo en secreto o estoy seguro de enviarlo a los clientes como parte de la tabla de clasificación? (es decir, ¿puede un jugador aleatorio usar esta identificación para interferir con el jugador legítimo con la identificación de la tabla de clasificación?)

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Un socket.id dura solo la duración de una sesión determinada de socket.io. Una futura conexión socket.io del mismo cliente recibirá un nuevo socket.id . Como tal, NO es un identificador duradero y, por lo tanto, no creo que sea muy útil para una tabla de clasificación porque no necesariamente atribuiría múltiples puntajes del mismo usuario (en diferentes sesiones) al mismo usuario. En su lugar, desearía un identificador de usuario duradero que cree su propio servidor (generalmente como parte de un proceso de registro/inicio de sesión del usuario) y puede asegurarse a largo plazo de que sea único y que el mismo cliente obtenga el mismo identificador cada vez.

En cuanto a cuán único es un socket.id , se acuña a través de la generación de números aleatorios. Utiliza el módulo base64id para crear la identificación única y el documento para ese módulo dice que usa crypto.randomBytes() . Puedes ver la implementación aquí .

Entonces, con la generación de números aleatorios, es probabilísticamente único, no garantizado único. A primera vista, en el módulo base64id, parece que agrega un número creciente a los bytes aleatorios en algunas circunstancias, lo que podría garantizar que sea único durante la vida útil del servidor (sin reinicios del servidor) suponiendo que no se renueven los dígitos crecientes, pero aún así no mantendrá la misma identificación para el mismo cliente en diferentes sesiones.

debería mantenerse en privado

Se crea/asigna un socket.id en el servidor, por lo que no hay posibilidad de que un cliente intente suplantar o usar el socket.id de otro usuario. Como tal, no hay ninguna razón particular para mantenerlo en privado. Es solo una identificación única que socket.io usa para la contabilidad interna para realizar un seguimiento del estado de una conexión determinada.

Si alguna vez ha mirado un socket.id, no está especialmente diseñado para el consumo humano y/o para mostrarse en una interfaz de usuario. Es una cadena de base64 que se verá como un galimatías para la mayoría de los usuarios habituales si se muestra en una tabla de clasificación. Más comúnmente, un usuario especificaría su propio "nombre para mostrar" cuando se suscribió a su servicio y lo usaría en una tabla de clasificación y lo usaría como identificador persistente de una sesión a la siguiente.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!