2014-05-05 1 views
19

Gruppe,Server Push-Benachrichtigung Implementierung

Ich plane, meinen eigenen Server Push-Benachrichtigungsserver für Android/IOS-Anwendungen zu implementieren. Mein Anwendungsserver (der über NodeJs implementiert werden kann) kontaktiert diesen Notification Server, um Nachrichten an Geräte zu senden. Also surfte ich durch das Internet und fand die untenstehenden Lösungen.

Google Cloud Messaging

Apple-Push-Benachrichtigungsdienst

Firefox os Push-Benachrichtigungen

Microsoft Push-Benachrichtigungsdienst


Q1)
Auf ihren jeweiligen Seiten; Sie informierten nur über die Verwendung ihres Benachrichtigungsservers. Ich brauche jedoch Informationen darüber, wie sie ihren Server-Push implementiert haben.

Bitte sagen Sie mir; Befolgen sie das unten?

Polling

Lange Polling

Streaming

Server Sent Events

TLS, SSL oder TCP-Socket-Verbindungen mit Client-

XMPP


Q2)

Im Folgenden zwei Methoden behaupten, dass wenn mein App nicht läuft; sie können immer noch Benachrichtigungen an APP senden? Wie ist das möglich?

Apple-Push-Benachrichtigungsdienst

Firefox os Push-Benachrichtigungen


Q3)

In Firefox OS Push-Benachrichtigungen; Sie haben mitgeteilt, dass sie "keep-Alive" vermeiden, um Batterielebensdauer zu sparen. Meine Frage ist ohne Keep-Alive zu ermitteln, wie die Verbindung noch am Leben ist oder nicht?


Q4)

Ist das alles, diese (GCM/APNS/FireFox OS) Implementierung schieben nur Server-Seite ist, und wird nicht auf Anfragen von Kunden annehmen. Hab ich recht?
Also noch mein Server muss Millionen von Geräteanforderungen anders als Push-Nachrichten behandeln, richtig?
Wenn ich Websocket zwischen meinem eigenen Benachrichtigungsserver und meinen Client-Geräten verwende, muss ich eine weitere Websocket-Verbindung zwischen meinem Anwendungsserver und Clients aufrechterhalten, um Anfragen von Geräten zu empfangen?

+0

Apple Push-Benachrichtigung wird von iOS nicht Ihre App gesteuert. Somit ist dies auch verfügbar, wenn die App nicht läuft. Um eine Benachrichtigung zu senden, öffnen Sie eine SSL-Verbindung zum Apple-Server und senden die Push-Notification-Payload. Es gibt keine Polling oder irgendetwas, da iOS alles handhaben wird. – rckoenes

+0

@rckoenes Danke !! Also wenn ich meinen eigenen Benachrichtigungsserver implementieren möchte; Ist es möglich, Code auf ios zu schreiben, um die SSL-Verbindung zu meinem Server zu öffnen? –

+1

Nein, Ihr Server sollte mit dem Apple Push Notification Server kommunizieren. Wenn Sie beabsichtigen, einen eigenen Server zu schreiben, können Sie keine Push-Benachrichtigungen verwenden und den Akku entleeren, da Sie eine Nachricht von Ihrem eigenen Server abrufen müssen. Apple APNS wird von iOS gesteuert, es verbindet sich einmal mit dem Apple-Server und sammelt alle Push-Benachrichtigungen für alle Apps auf dem Gerät. – rckoenes

Antwort

8

Apple Push-Benachrichtigung wird von iOS nicht Ihre App gesteuert. Somit ist dies auch verfügbar, wenn die App nicht läuft. Um eine Benachrichtigung zu senden, öffnen Sie eine SSL-Verbindung zum Apple-Server und senden die Push-Notification-Payload. Es gibt keine Polling oder irgendetwas, da iOS alles handhaben wird.

Wenn Sie beabsichtigen, Ihren eigenen Server zu schreiben, können Sie keine Push-Benachrichtigungen verwenden und den Akku entleeren, da Sie Nachrichten von Ihrem eigenen Server abrufen müssen. Apple APNS wird von iOS gesteuert, es verbindet sich einmal mit dem Apple-Server und sammelt alle Push-Benachrichtigungen für alle Apps auf dem Gerät.

+0

+1 Vielen Dank für Ihre Antworten. –

+3

Sie lassen es aussehen wie Apple Push Notification magisch, tut es aber nicht. Sie können das gleiche mit einer unausgeglichenen einseitigen persistenten Verbindung zu Ihrem eigenen Server replizieren, die erwacht, wenn der Server es wünscht. Der einzige Vorteil von Apple Push Notification besteht darin, dass Sie eine gemeinsam genutzte Verbindung im Leerlauf für alle Apps/Spiele haben. Ich kann nicht für Apple Push Notification sprechen, aber aus meiner Erfahrung mit Push-Diensten auf anderen mobilen Betriebssystemen sind sie alle zuverlässig. Es gibt auch viele Beiträge, die solche Probleme dokumentieren. –

+0

Als Faustregel gilt, wenn ich eine zuverlässige und vielleicht sichere App erstellen muss, wähle ich mein eigenes Push-System. Wenn Sie mehr als eine App erstellen, können Sie so weit gehen, dass Sie Ihre eigene inaktive Verbindung zwischen ihnen teilen. –

1

Technische Details beiseite, gibt es verschiedene Lösungen von Drittanbietern wie Amazon SNS. Pro Million Benachrichtigungen sollten etwa 0,50 $ sein. Vergleichen Sie diese kleinen Kosten mit der Implementierung Ihrer eigenen Server/Services (Zeit, Kosten, Zuverlässigkeit). Ich denke, Sie sollten die Zeit für andere Aspekte Ihres Projekts aufwenden.

+0

Bitte denken Sie auf lange Sicht; und müssen Milliarden von Benachrichtigungen senden. Jetzt kosten sie 0,50; weiß nicht über die Zukunft rit ..? Auch ich muss verstehen/Code gemäß dem Drittparteisystem. –

+0

Sie erhalten gute Tutorials zum Starten. Wenn Sie eine Milliarde gesendet haben, sind die Kosten nicht sichtbar, da Sie Ihren eigenen Cluster von Servern, Wartung, Bugfixes usw. bereitgestellt haben. Es könnte klüger sein, zu zahlen, wenn Sie beim Start wachsen und viel schneller starten. Es sei denn, Sie haben ein bestehendes Setup, wo Sie Replikation, Failover, Queuing, Loadbalance usw. haben. Es kommt als Lib für verschiedene populäre Sprachen. – twb

+0

Ok danke !! Lass mich darüber nachdenken. –

9

Es gibt gute Artikel über das Internet, die Sie durchlaufen können, erhalten Sie Antworten. Jedoch versuche ich, Ihre Frage zu beantworten: Antworten sind meistens für Android- und Google-Server zutreffend.

Ans1) Sie haben ihre Listener, die von Ihnen verwendet werden müssen, indem Sie ihre Bibliotheksklassen in Ihrem Code verwenden. Sie müssen sich nicht um das Schieben kümmern. Sie müssen die Nachricht an den Server senden, um die Nachricht an das Gerät zu senden. Sie verwenden OAuth. In Bezug auf Protokolle gibt es zwei Methoden, die CCS und XMPP verwenden. CCS verwendet XMPP nur als authentifizierte Transportschicht, sodass Sie die meisten XMPP-Bibliotheken zum Verwalten der Verbindung verwenden können. Um Benachrichtigungen an das Gerät zu senden, können Sie Code in Android-App zum Senden sowie Ihren Server-Code schreiben. Das Versenden der Nachricht erfolgt nur mit Ihrem Code. Der Rest wird von Google Server im GCM-Fall erledigt. Sie können

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

Auch unter diesem Link Detail überprüfen, für Sicherheitsfragen

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

Ans 2) Ja, falls Ihre App nicht läuft dann Geräte auch vcan recieve Benachrichtigung, weil Sie Code für Broadcast-Listener schreiben müssen. Im Hintergrund wird es dem Server zuhören und wenn irgendein Nachrichtenpaket dort sein wird, wird es die Nachricht als Benachrichtigung empfangen. Android hat einen Dienst, den Sie brauchen, um sich nicht darum zu kümmern. Sie müssen diese Ressourcen nur verwenden, indem Sie die Bibliotheksklasse verwenden, die Ihnen die Arbeit erleichtert, und sie schreiben lassen, wenn Ihre App nicht läuft, und außerdem Benachrichtigungen erhalten. Offensichtlich würde es einige Zuhörer whick die App machen recieve.Check "Recieve die Meldung" in diesem Link

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

Am 3) - Firefox OS Push-Benachrichtigungen sind für eine Sache - Aufwachen Apps. Sie befassen sich nicht mit Daten. Prüfen Sie diesen Link

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

Am 4) - Nein, es wird acccept Anfrage von den Benutzern auch. Ich bin nicht sicher für andere, aber für GCM wird es tun. Sie bitte auf "Senden Sie eine Nachricht"

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

Hope this Sie mit Ihrer Frage geholfen.

+0

Ich möchte meinen eigenen PUSH-Benachrichtigungsserver implementieren, ich möchte keine Drittanbieter-Server wie GCM verwenden ... Kann ich Websocket auf meinem Notification Server verwenden? –