Error running socket.io on port 80 with Node.js in production

I have been using node.js and socket.io for quite a while .

I have encountered a strange issue . In the past I used mostly long ports - 3000, 4001, 8888 etc for running my node and socket servers. I didnt face any issue .

However when I move the port to 80 , I get the following error -

Error during WebSocket handshake: 'Connection' header value is not 'Upgrade'

I get this error only while running the page on Chrome . I am hosting this app on Amazon AWS. It works fine on localhost , but gives the error on production for port 80 .

I dont think this has anything to with my code, as it works on dev and non-80 ports.

Also I observe the socket communication falls down to xhr-polling and json-polling . While on non-80 ports , websockets work fine .

I am not sure whats the problem . I dont get the same error on other browsers , but the socket connections do not occur either.

I am not using nginx or any other load balancer.