Skip to content

Instantly share code, notes, and snippets.

@xPomaHx
Created November 3, 2019 22:55
Show Gist options
  • Save xPomaHx/6006494043958ae5fe0d249041f3b10b to your computer and use it in GitHub Desktop.
Save xPomaHx/6006494043958ae5fe0d249041f3b10b to your computer and use it in GitHub Desktop.
pure socket http server on nodejs
const net = require("net");
const server = net.createServer((socket) => {
const requestBuffers = [];
console.log("server connected");
socket.on("data", (dataBufered) => {
requestBuffers.push(dataBufered);
console.dir(dataBufered.toString("utf8"));
const contentLength = requestBuffers.reduce((lenght, buffer) => lenght + buffer.lenght, 0);
socket.write(`HTTP/1.0 200 OK\r\ncontent-length: ${contentLength}\r\n\r\n`);
requestBuffers.forEach(buffer => socket.write(buffer));
socket.end();
});
["close", "connect", "data", "drain", "end", "error", "lookup", "timeout"].forEach(eventType => {
socket.on(eventType, () => console.log("eventType: ", eventType));
});
});
server.listen(80, () => {
console.log("server bound");
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment