NodeJS app only returning the Socket.io welcome message

I have a tracking app built with Node that is accessed by other sites in our network. They will access the app thru the head of their html files like so:

<title>Test</title>
<meta name="generator" content="TextMate http://macromates.com/">
<script src="http://mynetwork.com:1337/tracker.js?pid=publisher1&ps=home"></script>
</head>
<body>

The tracker.js file uses socket.io to connect to app.js which stores some data in MongoDB. For some reason when start socket.io then load a page that references that Tracker.js scripts I get an error "Uncaught SyntaxError: Unexpected identifier" on line 1 which is actually the “Welcome to socket.io." message and not the javascript thats in the file.

Here is what Tracker.js looks like:

(function(document, onload){

  var io = document.createElement('script');
  io.src = "//cdn.socket.io/stable/socket.io.js";
  io.setAttribute('async', 'true');
  if ( typeof onload === 'function') {
    io.onloadDone = false;
    io.onload = function() {
        io.onloadDone = true;
        onload();
    };
    io.onreadystatechange = function() {
        if ( "loaded" === io.readyState && !io.onloadDone ) {
            io.onloadDone = true;
            io.onload();
        }
    };
  }
  (document.getElementsByTagName('head') || document.getElementsByTagName('body'))[0].appendChild(io);

});

(document, function(){
  var socket = io.connect('http://mynetwork.com:1337');
   socket.emit('adTracker', 
    { adServer: 'datalunk', adZone : 'top_home', referingURL : 'site.com' } 
  );

   socket.on('entrance', function(){
    console.log('Response is:' + data.message);
   });
});

The app.js file looks like this:

var io = require('socket.io');
var tracker = io.listen(1337);

tracker.configure(function () {
    tracker.set('authorization', function (handshakeData, callback) {
        if (handshakeData.xdomain) {
            callback('Cross-domain connections are not allowed');
        } else {
        callback(null, true);
        }
    });
});


tracker.sockets.on('connection', function (socket) {
  socket.on('entrance', {message: 'connection has been made to app.js'});
  socket.on('adTracker', function (data) {
  var adRequestData = data;
var pass = ["bigbooks"];
var databaseUrl = "user:pass@linus.mongohq.com:10006/node-test";
var collections = ["mads"]
var db = require("mongojs").connect(databaseUrl, collections);

db.cmnads.insert({adRequest : adRequestData}, {$set: {password: pass}}, function(err, updated) {
    if( err || !updated ) console.log("User not updated");
    else console.log("User updated");
});
  });
});

Can anyone tell me why I would be getting the socket.io welcome message & error on line 1 and how do I resolve it?

(function(document, onload){

  var io = document.createElement('script');
  // rest of code
});

(document, function(){
 // rest of code
   });
});

should be

(function(document, onload){

  var io = document.createElement('script');
  // rest of code
})(document, function(){
 // rest of code
   });
});

You use an anonymous function that you should call (and you don't do it).

the correct syntax is (for a more simple example):

(function(a) {console.log(a)})('Hello World');

However you do:

(function(a) {console.log(a)});
('Hello World');

Make sure that the server has the latest stable version of Node installed. According to the official web site, it is currently v0.8.16.

Also, if socket.io server is running on http://mynetwork.com:1337/ then I believe you should be able to include the socket.io.js from http://mynetwork.com:1337/socket.io/socket.io.js

The fastest way to check if maybe the Node version is the source of problem is to install Node Version Manager, then v0.8.16 and finally run the socket.io server again

wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh
nvm install v0.8.16
nvm use 0.8.16
node yourSocketIOserver.js