版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/i042416/article/details/88173548
先看我的WebSocket服务器端代码:
socket.on('disconnect', function(){
console.log("disconnect event detected, client is probably not there");
eventEmitter.emit('close',socket);
});
一旦客户端比如浏览器主动断开连接,服务器实现扑捉disconnect的事件,然后抛给服务器端应用实现。
服务器端应用实现响应这个事件,调用服务器的析构例程,把该客户端对应的套接字从套接字池里移除:
移除实现:
function disconnectFromGivenClient(disconnectedSocket){
console.log("before destruction, client size: " + clients.length);
clients = clients.filter(function(item) {
return item !== disconnectedSocket
});
console.log("after destruction, client size: " + clients.length);
}
运行时测试效果:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":