web-dev-qa-db-fra.com

Implémentation des notifications Server Push

Groupe,

Je prévois d'implémenter mon propre serveur de notification Server Push pour les applications Android/IOS. Donc, mon serveur d'applications (qui peut être implémenté via NodeJs) contactera ce Notification Server pour envoyer des messages aux périphériques. J'ai donc navigué sur Internet et trouvé les solutions existantes ci-dessous. 

Messagerie en nuage Google

Service de notification Apple Push

Notifications Firefox OS

Service de notification Microsoft Push


Q1) 
Sur leurs sites respectifs; ils n'informaient que sur la manière d'utiliser leur serveur de notification. Cependant, j'ai besoin d'informations sur la manière dont ils ont implémenté leur serveur Push. 

S'il vous plaît dites-moi; est-ce qu'ils suivent tout cela ci-dessous? 

Vote

Long sondage

Diffusion

Événements envoyés par le serveur

Connexions de socket TLS, SSL ou TCP avec le client

XMPP


Q2) 

Ci-dessous deux méthodes prétendent que même si mon application n'est pas en cours d'exécution; ils peuvent toujours être en mesure d'envoyer une notification à APP? Comment est-ce possible?

Service de notification Apple Push

Notifications Firefox OS


Q3)

Dans Firefox, notifications push; ils ont indiqué qu'ils évitaient de garder Keep-Alive pour économiser la batterie. Ma question est sans garder en vie comment déterminer si la connexion est toujours vivante ou non?


Q4)

S'agit-il de tous ces systèmes (GCM/APNS/FireFox)? L'implémentation est uniquement en mode serveur et n'accepte pas les demandes du client. Ai-je raison? 
Donc, mon serveur doit toujours gérer des millions de requêtes de périphériques autres que les messages Push, non? 
Si j'utilise websocket entre mon propre serveur de notification et des périphériques clients, dois-je conserver une connexion Websocket supplémentaire entre mon serveur d'applications et mes clients pour recevoir les demandes des périphériques?

18

Il existe de bons articles disponibles sur Internet, vous pouvez consulter, vous obtiendrez des réponses. Cependant, j'essaie de répondre à votre question: Les réponses sont généralement valables pour les serveurs Android et Google.

Ans1) Ils ont leurs écouteurs qui doivent être utilisés par vous en utilisant leurs classes de bibliothèque dans votre code. Vous n'avez pas besoin de vous soucier de pousser. Vous devez envoyer le message au serveur. Le serveur transmettra le message à l'appareil. Ils utilisent OAuth . En ce qui concerne les protocoles, il existe deux méthodes utilisant CCS et XMPP. CCS utilise simplement XMPP en tant que couche de transport authentifiée. Vous pouvez donc utiliser la plupart des bibliothèques XMPP pour gérer la connexion. Pour envoyer des notifications à l'appareil, vous pouvez écrire du code dans l'application Android à envoyer ainsi que le code de votre serveur. l'envoi du message se fera uniquement par votre code. Le reste sera pris en charge par Google Server dans le cas GCM . Vous pouvez vérifier les détails à ce lien

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

Aussi, pour des problèmes de sécurité

Sécurité de la messagerie en nuage Googlehttps://groups.google.com/forum/#!topic/Android-gcm/M-EevBitbhQ

Ans 2) Oui, si votre application ne fonctionne pas, les appareils peuvent également recevoir une notification, car vous devez écrire du code pour les écouteurs de diffusion. En arrière-plan, il écoute le serveur et chaque fois qu'un paquet de message est là, il reçoit le message comme notification. Android a un service dont vous avez besoin pour ne pas vous en soucier. Il vous suffit d'utiliser ces ressources à l'aide de la classe library qui facilite votre travail et de les laisser écrire si votre application n'est pas en cours d'exécution, elle reçoit également une notification. Évidemment, il y aurait un auditeur qui ferait que l'application soit reçue.Check la section "Recevez le message" dans ce lien

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

Ans 3) - Les notifications push de Firefox OS sont conçues pour une seule chose: réveiller les applications. Ils ne traitent pas de données. Vérifiez ce lien

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

Ans 4) - Non, il acceptera également la demande des utilisateurs . Je ne suis pas sûr pour les autres, mais pour GCM, il le fera . Veuillez cocher la case "Envoyer un message".

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

J'espère que cela vous a aidé avec votre question. 

9
ajitksharma

La notification Apple Push est contrôlée par iOS et non par votre application. Ainsi, cela est disponible même si l'application n'est pas en cours d'exécution. Pour envoyer une notification, ouvrez une connexion SSL au serveur Apple et envoyez le contenu de notification Push. Il n'y a pas d'interrogation ou quoi que ce soit puisque iOS va tout gérer. 

Si vous avez l’intention d’écrire sur votre propre serveur, vous ne pouvez pas utiliser la notification Push de l’utilisateur et vous allez décharger la batterie, car vous devrez extraire le message de votre propre serveur. Apple APNS est contrôlé par iOS, il se connecte au serveur Apples une fois de temps en temps et collecte toutes les notifications Push pour toutes les applications de l'appareil. 

8
rckoenes

Les détails techniques mis à part, il existe diverses solutions tierces telles qu'Amazon SNS. Les notifications par million devraient représenter environ 0,50 USD. En comparant ce coût minime par rapport à la mise en œuvre de vos propres serveurs/services (temps, coûts, fiabilité), j'estime que vous devriez consacrer votre temps à d'autres aspects de votre projet. 

1
twb