I've just finished a little application using node.js and socket.io. I would like to put it on the Web and I don't know which server to take. I am searching for a free one. I've already found appfog, nodester and pusher but I do not know if we can use them with socket.io and the use seems complicated.
If you know a simple or well-documented one it would be cool.
If you are new to Amazon Web services, you can get a micro.t1 ECS instance free for a year. More details here. I am hosting a node.js/socket.io app on one myself currently atop Ubuntu.
You're going to need a host that either gives you system-level access to build/deploy software, or you'll need a host that provides a compatible environment for you.
I personally have used Slicehost for years, but am switching to Linode soon. I prefer having complete control over my installations.
You could look at running an EC2 instance from Amazon, http://aws.amazon.com/ec2/. Lots of instance sizes to pick from, tons of pre-configured AMI's to pick from. Or just pick a basic one and setup whatever server you need.
Some other solutions are like Heroku and nodester. Socket.io works fine with all of these.
In general, you pay less for servers you configure yourself and you have more flexibility with what you can do. If you're less interested in that, then spend more money and try finding someone else's platform that does what you need.
You could try signing up for a Windows azure account. They have nodejs support and you get up to 10 free websites (limited in some way by resources)
This should sort you out till you are ready to pay (hopefully when you have more traffic).