Qual é a melhor maneira de criar aplicativos em tempo real usando o Angular.js e o Node.js?

Sou iniciante em Angular.js e Node.js, mas percebi que há duas maneiras possíveis de criar aplicativos em tempo real. O primeiro é usar Socket.io e o outro está usando a função RESTful with setInterval () como uma solução do lado do cliente. Eu construí meu aplicativo usando as duas alternativas, mas não sei por que é melhor usar um ao invés do outro.

Meu controlador usando Angular.js (alternativa Socket.io):

function MyController($scope, socket) {

  socket.on('test', function(data){
    $scope.data = data;
    console.log($scope.data);
  });

}

Meu controlador usando Angular.js (alternativa RESTful):

function MyController($scope, $http) {

  setInterval(function() {
    $http.get('/test.json')
         .success(function(data, status, headers, config) {
           $scope.data = data;
           console.log($scope.data);
         });
  }, 1000);

}

Quais seriam as diferenças entre essas formas de fazer as coisas? Desde já, obrigado!

questionAnswers(5)

yourAnswerToTheQuestion