¿Cómo funciona Socket.io?