Angular Module for Socket.io
- AngularJS 1.3.0+
- Socket.IO 1.2.0+
Simply download the ngSocket.js
file and add it to your web application. Just make sure it's included after the AngularJS script.
- Add the
ngSocket
module as a dependency in your AngularJS app; - Inject the
$socket
factory wherever you need to use Socket.IO; - You're done!
<script src="angular.min.js"></script>
<script src="socket.io.js"></script>
<script src="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");
}]);