2011-09-22 7 views
11

sul lato server I GotOttieni l'ID client del mittente del messaggio in socket.io?

socket.on('chat', function (data) { 
    io.sockets.socket(data.clientid).emit('chat', { 
     msg: data.msg, 
     senderid : senderid 
    }); 
}); 

Come posso ottenere l'ottenere il SenderID senza che il mittente dover inviare la loro clientid attraverso con il messaggio?

risposta

21

Si scopre posso solo usare socket.id dell'utente invio attraverso un msg per ottenere il loro clientid, come ad esempio:

socket.on('chat', function (data) { 
     io.sockets.socket(data.clientid).emit('chat', { 
      msg: data.msg, 
      senderid : socket.id 
     }); 
    }); 

Inizialmente ho pensato che avrei potuto solo prendere il clientid facendo:

io.sockets.on('connection', function (socket) { 
    clientid = socket.id; 

ma clientid sarà l'ultima persona che collegato in questo caso, non è l'ultima persona che ha inviato attraverso una chat

+0

mi dispiace ma il salvataggio del socket.id ad una var dichiarato dopo la 'connessione' volontà d o il trucco! funziona alla grande per me –

0

Suggerirei di inviare un nome utente (assicurarsi che sia univoco) e di mantenere in memoria un oggetto degli ID client associati ai nomi utente.

Problemi correlati