Signal.IO is a realtime application framewrork for building Web API based on WebSocket instead of HTTP.
var signal = require('signal.io');
var server = require('http').Server();
var io = signal(server);
io.connect('/', function(socket) {
socket.on('get', function(req, res) {
res.send('Hello World');
});
});
server.listen(3000);
var signal = require('signal.io');
var server = require('http').Server();
var io = signal(server);
io.use(signal.cookieParser());
io.use(signal.session('my secret'));
io.connect('/posts/:postId', function(socket) {
socket.on('read', function(req, res) {
var post = {id: req.params.postId, title: 'A post'};
res.send(post);
});
socket.on('update', function(req, res) {
var post = req.body;
res.broadcast.send(post);
});
});
server.listen(3000);
Use Socket.IO as the client.
<script src="/signal.io/socket.io.js"></script>
<script>
var socket = io('http://localhost:3000/posts/10', {path: '/signal.io'});
socket.on('connect', function() {
socket.emit('read', function(err, post) {
console.log('Read a post', post);
});
var post = {title: 'Hello, World'}
socket.emit('update', post, function(err, post) {
console.log('Update result', post);
});
socket.on('update', function(post) {
console.log('Received a result of other clients', post);
});
});
</script>