From 14f7c610cbf281b5f5776b84b452baf5dfc31f52 Mon Sep 17 00:00:00 2001 From: Kyle K Date: Fri, 29 Jun 2012 00:31:15 -0500 Subject: initial commit --- tinyserver.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tinyserver.js (limited to 'tinyserver.js') diff --git a/tinyserver.js b/tinyserver.js new file mode 100644 index 0000000..fd9d37d --- /dev/null +++ b/tinyserver.js @@ -0,0 +1,52 @@ +var http = require('http'); +var util = require('util'); +var url = require('url'); + +var router = require('./route'); + +var serverConfig = { + port: 8080, + hostname: 'localhost' /* eth interface ip? */ +}; + +/* current list of active users, key-value pairs */ +var activeUsers = []; + +/* this function is poked upon 'request' event */ +function requestListener(req, res) { + var datareq = ''; + + req.on('data', function(chunk) { datareq += chunk; } ); + req.on('end', function() { + util.log('[reqlistener] finished recv data'); + //console.log('data: %s', datareq.length == 0 ? 'empty' : datareq); + + /* should be some logic, e.g. blueprint 1 */ + util.log('[reqlistener] request kind: ' + req.method); + /* routing for pathname, figure out what request we have */ + var urlquery = url.parse(req.url); + //console.log('[reqlistener] query dump:\n' + util.inspect(urlquery)); + router.route(urlquery, res); + }); + req.on('close', function() { util.log('[reqlistener] client terminated before we could respond'); }); +} + +var server = http.createServer(requestListener); +server.listen(serverConfig.port, serverConfig.hostname, function() { + /* could use for proxy stuff? this function is called when listening event is emitted */ +}); + +server.on('connection', function(socket) { + util.log('[server] new connection from ' + socket.remoteAddress + ':' + socket.remotePort + + ', read ' + socket.bytesRead + ' bytes'); + //console.log(util.inspect(socket), false /* do not show non-enum props */, true); +}); + +server.on('close', function() { + util.log('[server] server shutdown'); +}); + +server.on('clientError', function(exception) { + util.log('[server] ' + exception); +}); + -- cgit v1.2.3