socket.io insieme a restify REST api

Ho implementato API REST usando restify.js. È schierato su heroku. Ora voglio aggiungere comunicazioni in tempo reale tra server e utenti (app mobili). La mia idea è di emettere eventi ai client per “dirli” quando sono disponibili per loro (e possono chiamare normali API REST per recuperare questi dati). Sto usando redis PUB / SUB nella mia app per trasmettere eventi.

Quindi il mio codice molto semplice sembra questo:

var redisClient = require('./redis-client'); var app = restify.createServer(); app.get('/give-me-data',function(req,res,next){ res.json('{ data: 'abcdef' }); }); redisClient.on('message',function(channel,message){ if(message=='data-available') { // now I want to emit event to mobile clients through socket.io } }); redisClient.subscribe('data-available-channel'); app.listen(process.env.PORT); 

Come posso aggiungere socket.io a tale app per consentire ai client (app mobili) di connettersi ad essa e ascoltare gli eventi?

Puoi usare socket.io . Ecco un articolo che mostra una semplice applicazione (gioco in tempo reale). In realtà è piuttosto semplice. Suggerirò di inviare i dati direttamente tramite la presa. Salvi una richiesta. Voglio dire che il tuo cliente riceverà il messaggio tramite il token e successivamente effettuerà una richiesta all’API. Quindi, puoi salvare questo.

Server:

 var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 

cliente: