Necesito saber el ID de socket actual y el índice de ese socket para un socket.emit() dado y el socket.on() socket.emit() correspondiente en el espacio de nombres y la habitación dados, pero no pude encontrar una buena referencia sobre cómo hacer esto en el socket documentación .io.
Por ejemplo:
Cliente
socket.emit('myMessage', myVar);Servidor
socket.on('myMessage', function(myVar){ //Need the socket id of the client who just emitted //and whether or not they are the first socket, second socket, third socket, etc. // eg something like: currentSocketID = io.socket.connected[socketid]; //?? what is the correct syntax? currentSocketIndex = io.socket.connected[index[i]]; //?? what is correct syntax? });Esto no es un duplicado de ¿Cómo puedo obtener la ID del socket de un evento en Socket.io? porque específicamente necesito evaluar quién es el primer socket, el segundo socket, etc., luego realizar algunas acciones basadas en esa información. La pila que vinculó simplemente explica cómo manejar un mensaje nuevo, que no es mi problema. Necesito manejar un nuevo mensaje y revelar el ID de socket real y el índice de socket del emisor.
Dentro de su devolución de llamada en este código:
socket.on('myMessage', function(myVar){ // can just use socket.id });Lo que supongo que probablemente esté dentro de algo como esto:
io.on('connection', function(socket) { socket.on('myMessage', function(myVar){ // can just use socket.id }); }); Tiene el objeto socket el cliente que emitió el mensaje (la variable socket probablemente todavía esté dentro del alcance), por lo que puede acceder directamente a socket.id para obtener la identificación de ese socket.
También solicita un index , pero no dice un índice de qué. Hay varias estructuras de datos en socket.io que realizan un seguimiento de la lista de sockets en salas y espacios de nombres. Algunas son matrices (por lo que tendrían un orden) y otras son mapas (por lo que en realidad no tendrían un orden). Hasta donde yo sé, socket.io no proporciona ninguna documentación sobre el seguimiento de algún orden de enchufes en habitaciones o espacios de nombres. Si explica con más detalle lo que está tratando de hacer con un índice, es posible que podamos brindarle más información sobre las estructuras de datos existentes que podrían funcionar para usted o sugerirle cómo puede realizar un seguimiento de este orden usted mismo.