Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2015, 14:29
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

Сообщение от desperado Посмотреть сообщение
Всем привет.
Это криво и неправильно..... Не хватает знаний грамотно подключить либу socket.io
Ага, привет.

http://ngmodules.org/modules?query=socket

Там ажно 9 реализаций. Не обещаю, что что-то стопроцентно подойдёт без напильника, но таки образцы "грамотного подключения" гарантирую.
Сообщение от desperado Посмотреть сообщение
С меня пиво, много пива.
9 ящиков?
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2015, 14:44
Аспирант
Отправить личное сообщение для desperado Посмотреть профиль Найти все сообщения от desperado
 
Регистрация: 26.08.2014
Сообщений: 51

Сообщение от MetaDriver Посмотреть сообщение
Ага, привет.

http://ngmodules.org/modules?query=socket

Там ажно 9 реализаций. Не обещаю, что что-то стопроцентно подойдёт без напильника, но таки образцы "грамотного подключения" гарантирую.
9 ящиков?
спасибо, но я уж все перепробовал.....но не слушается у меня сокет ((
может у кого есть уже какие решения.
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2015, 15:32
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

Сообщение от desperado Посмотреть сообщение
спасибо, но я уж все перепробовал.....но не слушается у меня сокет ((
может у кого есть уже какие решения.
Ну не, так не интересно... Давай лучше уже вернёмся к "идеальному" первоначальному плану:
Сообщение от desperado Посмотреть сообщение
....... помогите мне в идеале сделать фабрику или сервис, которая будет слушать сокет и ловить там сообщение "message". И что бы я в каждом контроллере при отлове этого сообщения запускал нужную мне функцию. .....
Для начала сделай рабочий пример того, как это сделано у тебя (просто накопипасть и выкинь всё лишнее). Ну и займёмся заворачиванием этого хозяйства в сервис (или провайдер).
А то у нас тут вапчета эта.... типа "учебная студия", а не файлообменник......
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2015, 16:54
Аспирант
Отправить личное сообщение для desperado Посмотреть профиль Найти все сообщения от desperado
 
Регистрация: 26.08.2014
Сообщений: 51

Сообщение от MetaDriver Посмотреть сообщение
Ну не, так не интересно... Давай лучше уже вернёмся к "идеальному" первоначальному плану:
Для начала сделай рабочий пример того, как это сделано у тебя (просто накопипасть и выкинь всё лишнее). Ну и займёмся заворачиванием этого хозяйства в сервис (или провайдер).
А то у нас тут вапчета эта.... типа "учебная студия", а не файлообменник......
Так все в первом посте, это контроллер.

html:
<div ng-controller="Ctrl as ctrl"></div>


контроллер:
app.controller('Ctrl ', ['$scope', '$http', 'getUser', 
  function($scope, $http, getUser) {
 
// вынести в сервис

var pub = new ab.Session(
      'wss://site.com:34015/',
      function(session) {
       getUser.Info().then(function(infoObj){
                var user = infoObj;
                pub.subscribe(user, function(topic, data) { 
                var response = data.split(":");
                    if ('message' === response[1])
                    {
                       call_function1 ();
                    }
                }, function() {
                }
                ,{
                    'skipSubprotocolCheck': false
                });
            return session;
        },
          function(code, reason) {
           
        }
    );
    });

// вынести в сервис

}]);


ну и подключается помимо ангуляра autobahn.js
Ответить с цитированием
  #6 (permalink)  
Старый 20.02.2015, 17:14
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

Сообщение от desperado Посмотреть сообщение
Так все в первом посте, это контроллер.
.... бла-бла .....
......ну и подключается помимо ангуляра autobahn.js
.... ну и... извини, не вижу ЗАПУСКАЕМОГО "in box" примера. Давай уже сделай. Помнитца у одного перца на другом форуме был девиз : Устройство должно работать "в ящике", а не "в принципе".

Последний раз редактировалось MetaDriver, 20.02.2015 в 17:32.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищем Front-End разработчика со знанием Angular JS на международный проект RecruiterIOW Работа 7 06.03.2015 10:41
Grid для Angular JS Shasoft Angular.js 6 02.11.2014 23:34
Ищу удаленно Angular JS Juinor вакансию angularjs Работа 1 11.08.2014 17:17
Angular JS + Opera Browser dima116 Библиотеки/Тулкиты/Фреймворки 1 01.04.2013 10:58
сокеты сокеты сокеты сокеты сокеты сокеты azamat Events/DOM/Window 0 11.01.2013 09:47