Advertisement
Guest User

Untitled

a guest
Sep 29th, 2014
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var net = require('net');
  2. var readline = require('readline');
  3. var fs = require('fs');
  4.  
  5. var db = new Array();
  6. console.log(typeof db)
  7.  
  8. var getUserInput = function (){
  9.     var rl = readline.createInterface({
  10.         input: process.stdin,
  11.         output: process.stdout
  12.     });
  13.  
  14.     var userPrefs = {};
  15.  
  16.     rl.question("How many points would you like to simulate?\n", function (answer) {
  17.       // TODO: Log the answer in a database
  18.         userPrefs.pointAmount = answer;
  19.         rl.question("How often would you like to emit data (in seconds)?\n", function (answer){
  20.             userPrefs.simInterval = answer;
  21.             rl.close();
  22.             startServer(userPrefs);
  23.         });
  24.     });
  25. }
  26.  
  27. var startServer = function (prefs){
  28.     var tcpServer = net.createServer(function (socket) {
  29.         socket.setEncoding('utf-8');
  30.      
  31.         socket.on('end', function() {
  32.             console.log('socket disconnected');
  33.         });
  34.         socket.on('data', function (data){
  35.             console.log(data);
  36.         });
  37.  
  38.         socket.on('error', function(err){
  39.             console.log(err)
  40.         });
  41.  
  42.         var emitData = setInterval(function (){
  43.             var recordCount = db.length;
  44.             var data = JSON.stringify(simulateChange(recordCount));
  45.             console.log(data);
  46.             socket.write(data);
  47.         }, prefs.simInterval * 1000);
  48.  
  49.         socket.on('end', function (){
  50.             clearInterval(emitData);
  51.         });
  52.     });
  53.  
  54.     tcpServer.listen(4000, function() {
  55.         console.log('server listening; Simulated Point Changes: ' + prefs.pointAmount + "; Simulated change interval: " + prefs.simInterval);
  56.     });
  57. }
  58.  
  59. var readData = function (){
  60.     var file = fs.readFileSync('configData.json');
  61.     var data = JSON.parse(file);
  62.     db = data;
  63. }
  64. var simulateChange = function (recordCount){
  65.     var randomIndex = Math.floor(Math.random() * recordCount);
  66.  
  67.     return (db[randomIndex]);
  68. }
  69.  
  70. readData();
  71. getUserInput();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement