2011-09-22 32 views
11

ở phía máy chủ tôi đã nhậnNhận id ứng dụng của người gửi thư trong socket.io?

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

Làm thế nào tôi có thể lấy được những SenderID mà không cần người gửi phải gửi ClientID của họ thông qua với thông điệp?

Trả lời

21

Hóa ra tôi chỉ có thể sử dụng socket.id của người sử dụng gửi thông qua một msg để có được ClientID của họ, chẳng hạn như:

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

Ban đầu tôi nghĩ tôi chỉ có thể lấy ClientID bằng cách thực hiện:

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

nhưng ClientID sẽ là người cuối cùng người kết nối trong trường hợp này, không phải là người cuối cùng người gửi thông qua một cuộc trò chuyện

+0

tôi xin lỗi nhưng lưu socket.id đến một var tuyên bố sau khi 'kết nối' sẽ d o lừa! làm việc tuyệt vời cho tôi –

0

Tôi khuyên bạn nên gửi qua tên người dùng (đảm bảo tên người dùng duy nhất) và giữ đối tượng id khách hàng được liên kết với tên người dùng trong bộ nhớ.

Các vấn đề liên quan