Всем привет. Значит что имеем:
На Ангуляре надо слушать сокет в контроллере и в зависимости от сокетного сообщения мне нужно что то выполнять.
Я никак не могу нормально на Ангуляре реализовать прослушку сокета, смог сделать только так, с помощи Autobahn (и то, не последней версии).
var pub = new ab.Session(
'wss://site.com:34014/',
function(session) {
getFactory.Info().then(function(infoObj){ // это promise с другой фабрики, откуда мне нужны некоторые данные.
var user = infoObj.info; //получаю данные для подписки на сессию
pub.subscribe(user, function(topic, data) {
var response = data.split(":");
if ('message' === response[1])
{
function1_call(); // вызов функции с одного контроллера
function2_call(); // вызов функции со второго контроллера
function3_call(); // вызов функции с третьего контроллера
}
}, function() {
}
,{
'skipSubprotocolCheck': false
});
return session;
},
function(code, reason) {
}
);
});
этот код я таскаю за собой в каждый контроллер и вызываю там соотв. функцию.
Это криво и неправильно, помогите мне в идеале сделать фабрику или сервис, которая будет слушать сокет и ловить там сообщение "message". И что бы я в каждом контроллере при отлове этого сообщения запускал нужную мне функцию. Не хватает знаний грамотно подключить либу socket.io
С меня пиво, много пива.