/** Example node.js app for serving random markers via socket.io **/

var app = require('http').createServer(handler);
var fs = require('fs');
var util = require('util');
var ns = require('node-static');
var io = require('socket.io').listen(app);
var net = require('net');
var file = new(ns.Server)("../static/", { cache: 600 });

// Listen on port 1338
app.listen(1338);

// Serve static content
function handler (req, res) {
  req.addListener('end', function() {
    file.serve(req, res, function(err, result) {
      if (err) {
        console.error('Error serving %s - %s', req.url, err.message);
        if (err.status === 404 || err.status === 500) {
          file.serveFile(util.format('/%d.html', err.status), err.status, {}, req, res);
        } else {
          res.writeHead(err.status, err.headers);
          res.end();
        }
      }
    });
  });
}

// Push random markers via socket.io
io.sockets.on('connection', function (socket) {
  var sock = net.createConnection(10000,"YOURSERVER");
  console.log('Attempting a connection');
  sock.on('connect', function (connect) {
    console.log('Connected');
    sock.on('data', function (data) {
      var parts = data.toString("utf-8").split(":");
      var lat, lng;
      lat = Number(parts[0]);
      lng = Number(parts[1]);
      if (lat != null && lng != null) {
        socket.emit('marker', { lat: lat, lng: lng });
      }
    })
  });
});
