disconnect instead of close event to ensure all sockets get removed