Switching socket.io to port 80 causing transport to switch to xhr polling

I've had a socket.io server up on port 3000 running perfectly. All the socket.emit and other actions work over a websocket connection.

However, once I tried to run the server on port 80, changing

app.listen(3000) to app.listen(80)

and made all the necessary client-side changes, socket.io stops using websocket and switches over to xhr polling

warn  - websocket connection invalid
info  - transport end
debug - set close timeout for client 1830609591747620770
debug - cleared close timeout for client 1830609591747620770
debug - cleared heartbeat interval for client 1830609591747620770
debug - setting request GET /socket.io/1/websocket/1830609591747620770
debug - set heartbeat interval for client 1830609591747620770
warn  - websocket connection invalid
info  - transport end
debug - set close timeout for client 1830609591747620770
debug - cleared close timeout for client 1830609591747620770
debug - cleared heartbeat interval for client 1830609591747620770
debug - setting request GET /socket.io/1/xhr-polling/1830609591747620770?t=1338511205390
debug - setting poll timeout
debug - client authorized for 
debug - clearing poll timeout
debug - xhr-polling writing 1::
debug - set close timeout for client 1830609591747620770
debug - setting request GET /socket.io/1/xhr-polling/1830609591747620770?t=1338511205500
debug - setting poll timeout
debug - discarding transport

Any ideas on why it switches over to xhr polling instead and what I can try?

Thanks

EDIT:: Would the fact that I'm also running an express web server AND a web socket server be an issue? Because within my code, I have both up and running. If this causes the issue, how can I fix this?

I haven't figured out why it switches to XHR Polling, but for my purposes of just wanting the websocket server to work on port 80, how I solved my problem was using the node-http-proxy package https://github.com/nodejitsu/node-http-proxy

I kept my code the same, but had the proxy listen on port 80, and route it to port 3000 where my websocket was listening on.

The warning 'websocket connection invalid' seems to suggest issues with a firewall/ antivirus security blocking web sockets on port 80. For a complete list of such issues check Socket.io and firewall software

Check out your network compatibility using the test/diagnostic page at http://websocketstest.com/.

Hope this helps.