Angular Module for Socket.io
Simply download the ngSocket.js
file and add it to your web application. Just make sure it's included after the AngularJS script.
ngSocket
module as a dependency in your AngularJS app;$socket
factory wherever you need to use Socket.IO;<script src="https://github.com/chrisenytc/ng-socket/raw/master/angular.min.js"></script>
<script src="https://github.com/chrisenytc/ng-socket/raw/master/socket.io.js"></script>
<script src="https://github.com/chrisenytc/ng-socket/raw/master/ngSocket.js"></script>
<script>
var myApp = angular.module('myApp', ['ngSocket']);
myApp.controller('MyCtrl', ['$scope', '$socket', function($scope, $socket) {
// Listening to an event
$socket.on('someEvent', function(data) {
$scope.data = data;
});
// Raising an event
$scope.raise = function(message) {
$socket.emit('otherEvent', message);
};
}]);
</script>
If you want to unsubscribe from an event automatically on scope destruction, just pass the current scope to on
method:
$socket.on('someEvent', $scope, function(data) {
...
});
By default, socket.io will connect to the same server that delivered the HTML page that the code is running on. If you want to connect to a different server, you can provide a different URL in the config event of your AngularJS module:
angular
.module("MyModule", ['ngSocket'])
.config(["$socketProvider", function ($socketProvider) {
$socketProvider.setUrl("http://localhost:3000");
}]);