Real-time updates with Web Sockets
Klient må requeste noe fra server
var app = require('express')();
var server = app.listen(3456, function () {
console.log('Server listening on port ' + 3456);
});
require('./sockets').connect(server);
var ws = require('ws');
exports.connect = function (httpServer) {
var wsServer = new ws.Server({server: httpServer});
wsServer.on('connection', function (socket) {
socket.send('Hello, sockets!');
});
};
sockets.js
normal server file
Skulle gjerne sagt at det var mange
socket.send('some message');
socket.on('message', function(message) { ... });
var clients = [];
wsServer.on('connection', function (socket) {
clients.push(socket);
});
var broadcast = function (message) {
clients.forEach(function (client) {
client.send(message);
});
};
"cURL for WS"
app.run(function ($rootScope) {
var url = 'ws://localhost:3456';
var connection = new WebSocket(url);
connection.onopen = function () {
console.log('WebSocket opened!');
};
connection.onmessage = function (event) {
var payload = JSON.parse(event.data);
$rootScope.$broadcast('ws:' + payload.topic, payload.data);
};
});$scope.$on('ws:new_user', function(event, newUser) {
$scope.$apply(function() {
$scope.users.push(newUser);
});
});