2014-05-05 14 views
19

Group,Implementazione notifica push server

Sto pianificando di implementare il mio server server di notifica push per le app Android/IOS. Quindi il mio application server (che può essere implementato tramite NodeJs) contatterà quel Notification Server per inviare messaggi ai dispositivi. Così ho navigato su internet e ho trovato le soluzioni sottostanti.

Google messaggistica cloud

di Apple servizio di notifica push

Firefox OS notifiche push

servizio di notifica push Microsoft


Q1)
sui loro rispettivi siti; stavano informando solo su come usare il loro server di notifica. Tuttavia ho bisogno di informazioni su come hanno implementato il loro push server.

Per favore dimmi; stanno seguendo uno di questi qui sotto?

Polling

polling lungo

Streaming

server ha inviato Eventi

TLS, connessioni SSL o di socket TCP con il cliente

XMPP


Q2)

Di seguito due metodi sono sostenendo che anche se la mia applicazione non è in esecuzione; possono ancora essere in grado di inviare notifiche all'APP? Come è possibile?

di Apple servizio di notifica push

Firefox OS notifiche push


Q3)

in OS Firefox notifiche push; hanno informato che stavano evitando keep-alive per risparmiare la durata della batteria. La mia domanda è senza keep-alive come determinare se la connessione è ancora viva o no?


Q4)

È questo tutti questi (/ APNS/FireFox OS) implementazione GCM è solo lato Server spingere, e non accetterà richieste dal client. Ho ragione?
Quindi il mio server deve gestire milioni di richieste di dispositivo diverse dai messaggi push, giusto?
Se utilizzo websocket tra il mio server di notifica e i dispositivi client, devo mantenere un'altra connessione web socket tra il mio server applicazioni ei client per ricevere richieste dai dispositivi?

+0

La notifica push Apple è controllata da iOS e non dall'app. Quindi questo è disponibile anche se l'app non è in esecuzione. Per inviare una notifica, apri una connessione SSL al server Apple e invia il payload della notifica push. Non ci sono sondaggi o altro da quando iOS gestirà tutto. – rckoenes

+0

@rckoenes Grazie !! Quindi se voglio implementare il mio server di notifica; è possibile scrivere codice su iOS per aprire la connessione SSL con il mio server? –

+1

No, il server deve comunicare con il server di notifica push Apple. Se si intende scrivere il proprio server, non è possibile inviare notifiche all'utente e scaricare la batteria poiché sarà necessario estrarre il messaggio dal proprio server. Apple APNS è controllato da iOS, si collega al server di Apples una volta e raccoglie tutte le notifiche push per tutte le app sul dispositivo. – rckoenes

risposta

8

La notifica push Apple è controllata da iOS e non dall'app. Quindi questo è disponibile anche se l'app non è in esecuzione. Per inviare una notifica, apri una connessione SSL al server Apple e invia il payload della notifica push. Non ci sono sondaggi o altro da quando iOS gestirà tutto.

Se si intende scrivere il proprio server, non è possibile inviare notifiche all'utente e scaricherà la batteria poiché sarà necessario estrarre il messaggio dal proprio server. Apple APNS è controllato da iOS, si collega al server di Apples una volta e raccoglie tutte le notifiche push per tutte le app sul dispositivo.

+0

+1 Grazie per le vostre risposte. –

+3

Fai sembrare che Apple Push Notification faccia la magia, ma non è così. È possibile replicare la stessa cosa con una connessione permanente unidirezionale al proprio server, che si risveglia quando il server lo desidera. L'unico vantaggio di Apple Push Notification è che hai una connessione inattiva condivisa per tutte le app/giochi. Non posso parlare per Apple Push Notification ma dalla mia esperienza con i servizi push su altri sistemi operativi mobili sono quasi affidabili. Ci sono anche molti post che documentano tali problemi. –

+0

Come regola generale, se devo costruire un'applicazione affidabile e forse sicura, sceglierò di eseguire il rollover del mio sistema push. Se crei più di un'app puoi andare fino a condividere la tua connessione inattiva tra di loro. –

1

Dettagli tecnici a parte, ci sono varie soluzioni di terze parti come Amazon SNS. Le notifiche per milione dovrebbero essere di circa $ 0,50. Confrontando questo piccolo costo rispetto all'implementazione dei propri server/servizi (tempo, costi, affidabilità), sento che dovresti passare il tempo su altri aspetti del tuo progetto.

+0

Pensa a lungo termine; e devo inviare miliardi di notifiche. Ora costano 0,50; non sai del futuro rit ..? Inoltre devo capire/codice come per il sistema di terze parti. –

+0

Ottieni buoni tutorial per l'avvio. Quando hai inviato un miliardo, il costo è invisibile rispetto a quello che hai implementato il tuo cluster di server, manutenzione, correzioni di bug, ecc. Potrebbe essere più saggio pagare quando cresci all'avvio e molto più veloce per il lancio. A meno che non si disponga di una configurazione esistente da utilizzare, in cui si abbia la replica, il failover, l'accodamento, il loadbalance, ecc. Viene fornito come lib per varie lingue popolari. – twb

+0

Ok grazie !! Fammi pensare su questo. –

9

Ci sono buoni articoli disponibili su internet, puoi passare attraverso avrai le risposte. Tuttavia sto cercando di rispondere alla tua domanda: Le risposte sono per lo più vere per i server Android e Google.

Ans1) Hanno i loro listener che devono essere utilizzati dall'utente utilizzando le loro classi di libreria nel codice. Non devi preoccuparti di spingere. Devi inviare il messaggio al server server invierà il messaggio al dispositivo. Usano OAuth. Per quanto riguarda i protocolli, ci sono due metodi che usano CCS e XMPP. CCS utilizza solo XMPP come livello di trasporto autenticato, quindi puoi utilizzare la maggior parte delle librerie XMPP per gestire la connessione. Per inviare notifiche al dispositivo è possibile scrivere il codice nell'app Android per inviare così come il codice del server. l'invio del messaggio sarà effettuato solo dal tuo codice. Il resto sarà curato da Google Server nel caso GCM. È possibile controllare i dettagli a questo link

http://developer.android.com/google/gcm/server.html

Inoltre, per le questioni di sicurezza

google cloud messaging security https://groups.google.com/forum/#!topic/android-gcm/M-EevBitbhQ

Ans 2) Sì nel caso in cui la vostra applicazione non è in esecuzione, allora anche i dispositivi di ricevono vcan notifica perché devi scrivere il codice per gli ascoltatori di trasmissione. In background ascolterà il server e ogni volta che un pacchetto di messaggi sarà lì, riceverà il messaggio come notifica. Android ha il servizio di cui hai bisogno per non preoccuparti di questo. Devi solo usare quelle risorse usando la classe della libreria che semplifica il tuo lavoro e lascia che scrivano se la tua app non è in esecuzione e riceve anche la notifica. Ovviamente, ci sarebbe qualche ascoltatore whick rendere l'applicazione per recieve.Check "ricevere il messaggio" in questo collegamento

http://developer.android.com/google/gcm/client.html

Ans 3) - Firefox OS notifiche push sono progettati per una cosa - il risveglio app. Non si occupano di dati. Controllare questo link

https://hacks.mozilla.org/2013/07/dont-miss-out-on-the-real-time-fun-use-firefox-os-push-notifications/

Ans 4) - Non sarà acccept richiesta da parte degli utenti anche. Non sono sicuro per gli altri, ma per GCM lo farà. cliccate su "Invia un messaggio"

http://developer.android.com/google/gcm/client.html

Spero che questo ti ha aiutato con la vostra domanda.

+0

Voglio implementare il mio server di notifica PUSH, non voglio usare server di terze parti come GCM ... Posso usare websocket sul mio server di notifica ..? –