Volevo implementare la notifica push in tempo reale a una delle app scritte in RoR. Non ho alcuna esperienza con nodejs, nowjs, express o socketio.
Quale sarebbe il modo più semplice per implementare il sistema di notifica push in tempo reale?
Tratto da questa domanda: link
La mia opinione personale è che mentre architettonicamente una delle soluzioni più diffuse è long-poll o comet, dal punto di vista dello sviluppo, non sono d'accordo che sia il più semplice nel senso che è un parte del modo di fare le cose: semplicemente c'è molto di più in un sistema queue / pubsub a causa del carico che il suo backend deve sopportare.
Personalmente, prenderei in considerazione la possibilità di collegare un server ActiveMQ o qualche altra soluzione di coda messaggi, purché abbia una nozione di coda per utente, che può essere svuotata da un client, e ha un'API JS per scarico, e forse un API Ruby / REST per spingere, funziona.
Ma ancora una volta, questa è la mia opinione personale, che mentre si, il polling lungo può essere un'opzione (o socket.IO può essere), è solo una parte dell'equazione, anche se una parte importante.
Il modo più semplice sarebbe utilizzare un sondaggio lungo. Tuttavia, questo non è push. Un sondaggio lungo è una richiesta normale, con un lungo timeout. Se c'è un messaggio, la richiesta verrà risposta. Il tuo cliente riceve la risposta e avvia la richiesta successiva. In questo modo hai quasi sempre una richiesta aperta, in attesa di una risposta.
Dai un'occhiata al Bridge realizzato dai creatori di nowjs. Ti aiuta a spingere i messaggi verso i tuoi clienti molto facilmente, sia che tu stia creando un'app Rails o un'app Node.js o persino app python. Supporta un sacco di lingue e piattaforme. È un sistema molto robusto in grado di gestire miliardi di messaggi al giorno.
I buoni a pububhubbub hanno un'ottima soluzione con i feed RSS. "PubSubHubBub" è un nuovo protocollo per le notifiche in tempo reale.
In breve, come puoi abilitare la tua app a inviare notifiche in tempo reale:
Fai riferimento a questo video di YouTube per una presentazione completa sull'argomento.
Ho visto una porta di Socket.IO su github ( link ). Immagino che tu possa usarlo.
Socket.IO è il modo più semplice per eseguire un'app push in tempo reale, in quanto ciò ti astrae dal meccanismo di trasporto utilizzato per il push . (per maggiori informazioni vedi il link).
I vantaggi dell'utilizzo di Socket.IO è che non devi preoccuparti di underunder transport in uso. La documentazione è molto semplice da seguire e tuttavia è molto dettagliato .
Dai un'occhiata a PushRadar : invia notifiche ai client all'istante e ti consente di ridimensionare a centinaia di migliaia di connessioni simultanee. Esiste una libreria Ruby preconfigurata che puoi utilizzare. Inoltre, specifico per questo servizio è il fatto che puoi indirizzare gli utenti finali ad azioni che hanno intrapreso sul tuo sito web o app web, posizione geografica (paesi e continenti), indirizzo IP, browser web e ID utente.
Un esempio:
radar.target_country('US').target_not_action('live-chat').broadcast('test-channel',
{message: 'Would you like to talk to one of our customer support team members on live chat?'})
Dichiarazione di non responsabilità: sono il fondatore di PushRadar.
Leggi altre domande sui tag javascript real-time ruby-on-rails node.js