I've been playing with Socket.io, node.js and WebSockets, all of which I can get working fine over a wifi connection.
However, when I test out a WebSocket-enabled app over a 3G connection (on my iPhone, for example) then it seems like falling back to long polling is the only workable solution.
With Socket.io the connection fails with "WebSocket connection invalid or Origin not verified" before falling back to long polling.
I don't know if WebSockets are meant to work over 3G - has anyone had success getting them to work like that? I've tried a number of different methods and the all seem to fail, which makes me think that I'm attempting the impossible.