56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
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
 |