Показать сообщение отдельно
  #1 (permalink)  
Старый 20.02.2015, 11:17
Аспирант
Отправить личное сообщение для desperado Посмотреть профиль Найти все сообщения от desperado
 
Регистрация: 26.08.2014
Сообщений: 51

Angular Js и сокеты. За пиво.
Всем привет. Значит что имеем:
На Ангуляре надо слушать сокет в контроллере и в зависимости от сокетного сообщения мне нужно что то выполнять.

Я никак не могу нормально на Ангуляре реализовать прослушку сокета, смог сделать только так, с помощи 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

С меня пиво, много пива.

Последний раз редактировалось desperado, 20.02.2015 в 11:22.
Ответить с цитированием