2014-02-17 2 views
5

Я знаю, что Angular обеспечивает удивительную двустороннюю привязку данных на стороне клиента, но я хочу больше!Использование Angular with socket.io

Я ищу подходящий способ подключить угловой со своей серверной частью (SailsJS, который включает socket.io).

Спасибо!

+3

http://www.html5rocks.com/ru/tutorials/frameworks/angular-websockets/ –

ответ

4

Вы пробовали угловые паруса-привязку? (https://github.com/diegopamio/angular-sails-bind) Бьюсь об заклад, у вас нет, поскольку я только что выпустил миру пару минут назад :). Я сделал это для своего собственного проекта, а затем решил разместить его как разделенную библиотеку, чтобы все могли извлечь выгоду, и я мог бы получить свой первый опыт разработки пакета колокольчиков.

Надеюсь, это может вам помочь.

BTW: он работает с парусами 0,10 (поскольку некоторые вещи, например, названия тем изменились с 0,9). Если вам нужно заставить работать с 0.9, просто дайте мне знать, и я буду рад помочь.

+0

Спасибо за головы. На этой неделе я обязательно попробую. Поскольку я использую паруса 0.10, обратная совместимость не понадобится. – danba

3

Я бы рекомендовал попробовать https://github.com/btford/angular-socket-io, что позволяет просто использовать объект сокета в контроллерах как то:

var socketApp = angular.module('socketApp', [ 
    'btford.socket-io' 
]); 

socketApp 
    .controller('messageListController', ['$scope', 'socket', function($scope, socket) { 
     $scope.messages = []; 

     $scope.postMessage = function(message) {}; 

     socket.on('connect', function() { 

      $scope.$on('socket:update', function(event, data) { 
       $scope.messages.push(data); 
      }); 

      $scope.postMessage = function(message, callback) { 
       socket.emit('post', message, function(commitedMessage) { 
        $scope.messages.push(commitedMessage); 
        callback(commitedMessage); 
       }); 
      }; 
    }); 
}]);