Was public 2013
server.js
var http = require("http"); var url = require("url"); var serverStartedDateTimeFormatted = formatDate(new Date()); var requestCount = -1; var requestStack = {}; var responseToSend = ""; function start() { writeLogWithTimeStamp("Starting"); function onRequest(request, response) { var body = ""; request.on('data', function (chunk) { body += chunk; }); request.on('end', function () { console.log('POSTed: ' + body); request.url_parts = url.parse(request.url, true); request.content = ""; writeLogWithTimeStamp("---------URL----------------"); writeLogWithTimeStamp(request.url); writeLogWithTimeStamp("---------PATHNAME-----------"); writeLogWithTimeStamp(request.url_parts.pathname); writeLogWithTimeStamp(JSON.stringify(request.url_parts.query)); writeLogWithTimeStamp("---------XML-----------"); writeLogWithTimeStamp(request.url_parts.query.xml); writeLogWithTimeStamp("--------------------------"); if ( ( request.url_parts.pathname == '/alarm' || request.url_parts.pathname == '/data' ) && "login" in request.url_parts.query && "password" in request.url_parts.query && "xml" in request.url_parts.query || 1==1 ) { // Common response requestCount++; // requestStack[requestCount] = {}; // requestStack[requestCount].login = request.url_parts.query.login; // requestStack[requestCount].password = request.url_parts.query.password; // requestStack[requestCount].xml = request.url_parts.query.xml; if (request.url_parts.pathname == '/alarm' ) { // ALARM response responseToSend = 'hello'; response.writeHead(200, { "Content-Type": "text/plain" }); response.write(responseToSend); response.end(); //request.connection.end(); // force a disconnect? } else { // DATA response } responseToSend = 'Whaaaat!'; response.writeHead(404, { "Content-Type": "text/plain" }); response.write(responseToSend); response.end(); //request.connection.end(); // force a disconnect? } request.addListener('data', function(chunk) { writeLogWithTimeStamp("---------DATA-----------"); writeLogWithTimeStamp(chunk); writeLogWithTimeStamp("--------------------------"); }); }); } var server = http.createServer(onRequest).listen(process.env.PORT, process.env.IP); writeLogServerUpSince(); setInterval(function () { writeLogServerUpSince(); }, 60000); console.log(server.PORT); } function writeLogWithTimeStamp(message) { console.log(formatDate(new Date()) + " " + message); } function writeLog(message) { console.log(message); } function writeLogServerUpSince() { writeLogWithTimeStamp("Server up since " + serverStartedDateTimeFormatted); } function pad(number, length) { var str = '' + number; while (str.length < length) { str = '0' + str; } return str; } function formatDate(date) { var dateStamp = ''; dateStamp += date.getFullYear(); dateStamp += '-'; dateStamp += date.getMonth() + 1; dateStamp += '-'; dateStamp += date.getDate(); dateStamp += '_'; dateStamp += pad(date.getHours(), 2); dateStamp += ':'; dateStamp += pad(date.getMinutes(), 2); dateStamp += ':'; dateStamp += pad(date.getSeconds(), 2); dateStamp += ':'; dateStamp += pad(date.getMilliseconds(), 3); return dateStamp; } function is_int(value) { if ((parseFloat(value) == parseInt(value)) && !isNaN(value)) { return true; } else { return false; } } process.on('uncaughtException', function (err) { console.log((new Date()).toUTCString() + ' uncaughtException:', err.message); console.error(err.stack); //process.exit(1); }); exports.start = start; start();