summaryrefslogtreecommitdiffstats
path: root/tinyserver.js
diff options
context:
space:
mode:
authorKyle K <kylek389@gmail.com>2012-06-29 00:31:15 -0500
committerKyle Kaminski <kyle@kkaminsk.com>2012-06-29 00:31:15 -0500
commit14f7c610cbf281b5f5776b84b452baf5dfc31f52 (patch)
treee83b24f857bb67fe7c59dfcb5882d8ce2f3439b1 /tinyserver.js
downloadfubar-14f7c610cbf281b5f5776b84b452baf5dfc31f52.tar.gz
fubar-14f7c610cbf281b5f5776b84b452baf5dfc31f52.tar.bz2
fubar-14f7c610cbf281b5f5776b84b452baf5dfc31f52.zip
initial commit
Diffstat (limited to 'tinyserver.js')
-rw-r--r--tinyserver.js52
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);
+});
+