2010-10-17 38 views
12

Tôi đang sử dụng node.js cho các kết nối được giữ lâu. Tôi muốn biết làm thế nào tôi có thể phát hiện khi kết nối máy khách đóng (có thể khi người dùng đóng tab). Làm cách nào để chỉ định gọi lại cho điều đó?Phát hiện gần kết nối máy khách trong node.js

Trả lời

9

Trả lời câu hỏi của riêng tôi - Bạn có thể phát hiện thân của kết nối khách hàng bằng cách thực hiện:

http.createServer(function(request, response) {  
    request.connection.addListener('close', function() { 
     // callback is fired when connection closed (e.g. closing the browser) 
    }); 
} 
+0

trình kích hoạt này sau khi bạn gửi phản hồi, không phải trước đó. – JasonS

+1

@JasonS Đó là cuộc gọi kết nối trở lại ... Sự kiện được thêm khi người dùng kết nối với máy chủ - không có gì liên quan đến việc cần gửi yêu cầu. –

0

Hãy xem Socket.io. Nó hỗ trợ vận tải sau đây với fallbacks theo thứ tự này:

  1. WebSocket
  2. Adobe Flash Ổ cắm
  3. AJAX dài bỏ phiếu
  4. AJAX nhiều phần dữ liệu trực tuyến
  5. Vô hạn khung nội tuyến
  6. JSONP Polling

Lợi ích là bạn sẽ có thể xử lý nhiều hơn c kết nối oncurrent hơn là bỏ phiếu dài một mình. Ngoài ra, bạn sẽ nhận được một tập hợp các tính năng phong phú như nhịp tim và ngắt kết nối.

io.sockets.on('connection', function (socket) { 

    // ... other socket handlers here ... 

    socket.on('disconnect', function() { 
    // do something to handle the disconnect 
    }); 
}); 
+0

bị bỏ phiếu cho: giải quyết vấn đề với một vấn đề khác – colthreepv

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