Ответ 1
Вам не нужно использовать какую-либо библиотеку для достижения этой цели, просто создайте службу, введите $rootscope и опубликуйте события оттуда до корневого каталога, затем в своем контроллере слушайте это событие.
var socket; // this be the socketio instance.
angular.module("myApp").factory("SocketHandler", function ($rootScope) {
var handler = function (msg) {
$rootScope.$apply(function () {
$rootScope.$broadcast("socketMessageReceived", msg);
});
};
socket.on("message", handler);
$rootScope.$on("unregisterSocket", function () {
socket.off("message", handler);
});
}).controller("myCtrl", function ($scope, SocketHandler) {
var listener;
var addListener = function () {
listener = $scope.$on("messageReceived", function (e, msg) {
console.log("New Message: " + msg);
}); // $on returns a registration function for the listener
};
var removeListener = function () {
if (listener) listener();
};
});