diff options
author | Kyle K <kylek389@gmail.com> | 2012-06-29 00:31:15 -0500 |
---|---|---|
committer | Kyle Kaminski <kyle@kkaminsk.com> | 2012-06-29 00:31:15 -0500 |
commit | 14f7c610cbf281b5f5776b84b452baf5dfc31f52 (patch) | |
tree | e83b24f857bb67fe7c59dfcb5882d8ce2f3439b1 /tinyserver.js | |
download | fubar-14f7c610cbf281b5f5776b84b452baf5dfc31f52.tar.gz fubar-14f7c610cbf281b5f5776b84b452baf5dfc31f52.tar.bz2 fubar-14f7c610cbf281b5f5776b84b452baf5dfc31f52.zip |
initial commit
Diffstat (limited to 'tinyserver.js')
-rw-r--r-- | tinyserver.js | 52 |
1 files changed, 52 insertions, 0 deletions
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); +}); + |