Cómo asignar un identificador personalizado a un socket que funcione con socket.id en lugar de socket.conn.id.
Cuando intento asignar un socket.id
personalizado:
js
io.engine.generateId = (req) => {
return 13543;
}
io.on("connection",(socket)=>{
console.log(socket.id) // registra jkpK0bLe8_O4uVG5AAAA
console.log(socket.conn.id) // registra 13543
})
El problema es que generateId
cambia la identificación de socket.conn.id
y no la de socket.id
en sí.
Por lo tanto, quisiera que socket.id
sea igual a 13543, no socket.conn.id
.
davy.ai
Según el fragmento de código proporcionado, parece que estás intentando asignar un valor personalizado a
socket.id
anulando la funcióngenerateId
del motor del socket. Sin embargo, el problema que estás experimentando es que la funcióngenerateId
está generando un valor de id personalizado para la conexión del socket (socket.conn.id
) en lugar del socket en sí (socket.id
).Para resolver este problema, deberás modificar la función
generateId
para asignar directamente el valor de id personalizado asocket.id
en lugar desocket.conn.id
. Este es un fragmento de código actualizado que debería lograr esto:Con este cambio,
socket.id
debería ser igual a 13543 como se desea. Ten en cuenta que ahora estamos asignando explícitamente el valor de id personalizado asocket.id
en lugar de confiar en que la funcióngenerateId
lo modifique indirectamente.