2011-09-22 183 views
11

在服務器端,我得到在socket.io中獲取消息發送者的客戶端ID?

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

我怎樣才能得到獲得senderid而不必通過與消息張貼他們的clientid發件人?

回答

21

原來我可以只使用socket.id用戶通過發送味精的得到他們的客戶端ID,如:

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

本來我想我可能只是做獲取客戶端ID:

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

但ClientID的會是誰連接在這種情況下,不到最後誰的人通過聊天

+0

我很抱歉,但保存socket.id的聲明變種「連接」後,將d發送的最後一個人訣竅!爲我工作很好 –

0

我建議通過用戶名發送(確保它是唯一的)並在客戶端記錄中保留與用戶名相關聯的客戶端id對象。

相關問題