# killable

Keeps track of a server's open sockets so they can be destroyed at a moment's notice. This way, the server connection can be killed very fast.

## Installation

```
npm install killable
```

## Example usage

Using express: ('server' in the example is just an `http.server`, so other frameworks or pure Node should work just as well.)

```javascript
var killable = require('killable');

var app = require('express')();
var server;

app.route('/', function (req, res, next) {
  res.send('Server is going down NOW!');

  server.kill(function () {
    //the server is down when this is called. That won't take long.
  });
});

var server = app.listen(8080);
killable(server);
```

## API

The `killable` module is callable. When you call it on a Node `http.Server` object, it will add a `server.kill()` method on it. It returns the server object.

`server.kill([callback])` closes all open sockets and calls `server.close()`, to which the `callback` is passed on.

Inspired by: <http://stackoverflow.com/a/14636625>

## License

ISC


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bryan-guner.gitbook.io/my-docs/redux/repos/examples/real-world/node_modules/killable.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
