1. Socket.io with Angular js Setup
Step 1. install Socket.IO to your app
$ cd path/to/your/project
npm install socket.io
Step 2. install socketio-auth for making authenticated requests
npm install socketio-auth
Step 3. Add this in your app.server file
var socket = require('socket.io');
var server = http.createServer(app);
var io = socket.listen(server);
/**
* Start Server
*/
server.listen(8080, function () {
console.log('your app server listening on port 8080 ' );
});
Step 4. On the client
index.html
<script src="socket.io/socket.io.js"></script> // npm module
Step 5. Add socket service to your app folder (services/socket .js file).
// socket service
angular.module('YOUR_APP', []).service('socket', function ($rootScope) {
var socket = io.connect();
socket = io(ApiRoutesListing.serverAddress, {
query: {
api_key: 'your_api_key'',
auth_token: auth_token
}
});
return {
on: function (eventName, callback) {
socket.on(eventName, function () {
var args = arguments;
$rootScope.$apply(function () {
callback.apply(socket, args);
});
});
},
emit: function (eventName, data, callback) {
socket.emit(eventName, data, function () {
2. var args = arguments;
$rootScope.$apply(function () {
if (callback) {
callback.apply(socket, args);
}
});
})
}
};
});
Step 6. Add this service to index.html file
<script type="text/javascript" src="services/socket.js"></script> //your socket service
Step 7. Now add socket service to the controller
angular.module('YOUR_APP', []).controller('YOUR_CONTROLLER', function ($scope, socket, .........)
{
socket.on('connect', function () {
setInterval(function () {
socket.emit('PING');
}, 2000)
});
socket.on(SOCKET_EVENT_NAME', function (data) {
console.log(data)
//you will get socket responce(data) here
//now bind this data value with your view by using $scope this will update view when
//socket event occurs.
});
.
.
.
}