2011-11-27 49 views
17

Có thể nhận được socket.id của ứng dụng khách đã ngắt kết nối không? Các mã sau đây mang lại cho tôi undefined cho socket.idsocket.id của khách hàng ngắt kết nối?

Node.js Mã

io.sockets.on('connection', function() { 
    socket.on('disconnect', function(socket) { 
     console.log(socket.id); 
    }); 
}); 

Trả lời

35

các hàm callback mà io.sockets.on mất như là đối số thứ hai của nó là vụ phải mất một đối số: socket. Không, do đó, các ổ cắm trên dòng thứ hai của socket.on là không xác định.

Và gọi lại cho socket.on không được đưa ra bất kỳ đối số nào, do đó, socket trong chức năng đó cũng không được xác định.

Mã nên có tác dụng nếu bạn di chuyển các tham số ổ cắm từ khai báo hàm thứ hai để là người đầu tiên:

io.sockets.on('connection', function (socket) { 
    socket.on('disconnect', function() { 
     console.log(socket.id); 
    }); 
}); 
Các vấn đề liên quan