mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-23 06:10:02 +08:00
27 lines
860 B
JavaScript
27 lines
860 B
JavaScript
/* The keep-alive dyn-binding pin: `let server; server = createServer(...)`
|
|
* puts the netServer HANDLE into an untyped binding (boxed by reference —
|
|
* SCR_DYNH_NET_SERVER). listen/close/address dispatch through the handle
|
|
* ops from closures the checker cannot narrow; the response body rides
|
|
* setEncoding on the client side. */
|
|
'use strict';
|
|
const http = require('http');
|
|
|
|
let server;
|
|
let hits = 0;
|
|
server = http.createServer(function(req, res) {
|
|
hits += 1;
|
|
console.log(`hit ${hits} listening=${server.listening}`);
|
|
res.end(`pong ${hits}`);
|
|
if (req.url === '/quit') {
|
|
server.close(function() {
|
|
console.log(`closed listening=${server.listening}`);
|
|
});
|
|
}
|
|
});
|
|
|
|
server.listen(0, function() {
|
|
const a = server.address();
|
|
console.log(`up family=${a.family} portok=${a.port > 0}`);
|
|
process.stderr.write(`PORT ${a.port}\n`);
|
|
});
|