Skip to content

Instantly share code, notes, and snippets.

@samwgoldman
Created September 18, 2012 08:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save samwgoldman/3741978 to your computer and use it in GitHub Desktop.
Save samwgoldman/3741978 to your computer and use it in GitHub Desktop.
var http = require("http");
var port = process.env.PORT || 8000;
var listeners = [];
function server(request, response) {
switch (request.method) {
case "GET":
listen(request, response);
break;
case "POST":
speak(request, response);
break;
default:
method_not_allowed(response);
}
}
function listen(request, response) {
response.writeHead(200, "OK", {
"Transfer-Encoding": "chunked"
});
listeners.push(response);
}
function speak(request, response) {
listeners.forEach(function(listener) {
request.pipe(listener);
});
response.writeHead(204, "No Content");
response.end();
}
function method_not_allowed(response) {
response.writeHead(405, "Method Not Allowed", {
"Allow": "GET, POST",
"Connection": "close",
"Content-Length": 0
});
response.end();
}
http.createServer(server).listen(port)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment