Angular по словам разработчиков заточен под crud приложения, создание/чтение/обновление/удаление записей в базе данных на сервере. Иными словами это админки сайтов, crm, erp, соц сети , какие либо биржы или аукционы, интернет магазины, сайты знакомств и другие подобные приложения. Возможно проканает какая нибудь текстовая игра.
В тоже время на angular не стоит писать realtime игры вроде RPG/RTS, приложения вроде word, и вообще едва ли разумно делать то что завязано на canvas или opengl. Наверно нет смысла применять его и в мелких скриптах вроде слайдера.
Иными словами ангуляр рулит прежде всего там там где много ввода/вывода информации через различные формы, это процентов 95% всех приложений.
Server-Sent Events можно свободно применить в любом фреймворке без исключений, в том числе и в Angular. Иными словами к фреймворку не каких особых требований не предъявляется .
var app = angular.module('sse', []);
// контролёр
function appCtrl($scope) {
// обьект информацию из которого мы покажем в шаблоне
$scope.msg = {};
// функция которая будет вызвана по событию с сервера
var handleCallback = function (msg) {
//поместим информацию пришедшую с сервера в scope
$scope.$apply(function () {
$scope.msg = JSON.parse(msg.data)
});
}
//подключаемся к источнику событий
var source = new EventSource('/stats');
//подписываемся на событие сервера
source.addEventListener('message', handleCallback, false);
}
Также EventSource('/stats'); можно вынести в отдельный сервис, и подключать сервис там где он используется.
В случае если несколько заинтерисованных директив принадлежат одному контролу, то есть смысл разместить обработку событий в родительском контроле, чтобы взаимодействие с сервером было централизованным. Данные же можно будет подключить к директивам через связывание.