1

Ich habe viele Artikel über die Implementierung von Push-Benachrichtigungen mit Cordova (und Ionic 2) gelesen und bin mir nicht sicher, wie ich das in China implementieren kann, wenn ich den Push-Server von Google nicht verwende.Push-Benachrichtigungen für verschiedene Plattformen und Geräte in China

Ich denke, mit https://github.com/phonegap/phonegap-plugin-push ist eine gute Idee. Aber alle Howtos konzentrieren sich darauf, ein Konto in Google FCM zu erstellen, das in China nicht wirklich hilfreich ist. Ich bezweifle, dass chinesische Telefone Google verwenden, um nach Benachrichtigungen zu fragen. Was zu meiner nächsten Frage führt.

ich davon aus, dass es nur einen zentralen Push-Service für alle Plattformen (Android, iOS und Windows) und Anbieter aus den folgenden Gründen besteht:

  • Eine Plattform ist nur Abfrage von einem festen Drücken Sie den Server, um die Akkulaufzeit zu verlängern.
  • Wenn eine App (Server-Seite) eine Push-Benachrichtigung sendet, weiß sie nichts über das Gerät des Empfängers. Daher kann sie nur auf einen zentralisierten Dienst zählen, der die Nachricht unabhängig von Plattform oder Anbieter an das Gerät sendet.

Aber nutzen Apple, Google und Microsoft alle den gleichen Push-Service? Ich bezweifle es, und das macht mich verwirrt. Auch wenn ich in China bin, da die Dienste von Google hier instabil sind, verwenden die in China vertriebenen Android-Telefone Google nicht und installieren Google Play Store nicht.

Wenn ich eine chinesische App (gehostet in China) auf einem deutschen Telefon (Android) installiere, erhalte ich immer noch alle Benachrichtigungen für diese App, auch wenn ich offensichtlich vom Push-Server von Google abrufe. Das heißt, die Benachrichtigungen der chinesischen App werden irgendwie an Google übermittelt.

Die einzige Erklärung dafür ist, dass die verschiedenen Push-Dienste zusammenarbeiten. Ist das der Fall? Wenn ja, dann macht es einen Unterschied, wo ich ein Konto erstelle (Google FCM: https://medium.com/@ankushaggarwal/gcm-setup-for-android-push-notifications-656cfdd8adbd#.rr2lfivfh), es ist immer noch auf verschiedenen Push-Servern nutzbar? Auch wenn ich eine Benachrichtigung sende, könnte ich irgendeinen Server auf der ganzen Welt benutzen?

Wie kann ich herausfinden, mit welchem ​​Push-Server mein Telefon verbunden ist (Android)?

Viele hier verwirrend, ich wirklich zu schätzen, wenn jemand Licht zu diesem Thema bringen könnte :-)

Antwort

0

Der Grund GCM/FCM in China nicht einfach zu allem, weil die Great Firewall of China blockiert Konnektivität arbeiten die verschiedenen Google-Dienste, einschließlich FCM.

Auch die meisten, wenn nicht alle, in China verkauften Telefone kommen nicht mit Google Play Services, eine Voraussetzung für FCM zu arbeiten.

Selbst wenn Sie ein deutsches Telefon, wie Sie erwähnten, nach China mitnehmen würden, würde es aufgrund der Firewall keine Benachrichtigungen erhalten, obwohl es Google Play Services hat.

Aber es gibt stattdessen alternative Push-Benachrichtigungs-Gateways, die viel zuverlässiger sind und nicht auf Google Play Services angewiesen sind. Einer davon ist Pushy.

Pushy (https://pushy.me/) bietet ein hochzuverlässiges Push-Benachrichtigungsgateway für Android-Apps, das unabhängig von FCM arbeitet und seine eigene MQTT-Hintergrundverbindung verwendet. Es bietet auch iOS-Unterstützung, sodass Sie alle Ihre Benutzer über eine einzige API für plattformübergreifende Unterstützung bereitstellen können.

Volle Offenlegung: Ich gründete Pushy.

+0

Ich betreibe bereits meinen eigenen Push-Benachrichtigungsdienst in China. Für Apple APNS, obwohl wir keine andere Wahl haben, als api.push.apple.com mit Relayrides/Pushy-Bibliothek zu verwenden, funktioniert es, aber oft ist der Dienst sehr träge. Da unsere Alarme zeitabhängig sind, führt dies zu Problemen. Ein Curl-Timing-Test zeigt, dass das Erreichen des Endpunkts aus USA etwa 0,3 Sekunden dauert, während es von 3 bis 22 Sekunden dauern würde und gelegentlich nur für lange Zeit blockiert wäre. Wird Ihr APNS-Dienst dieses Problem umgehen? –

+0

Meinst du, dass es in Übersee 3 - 22 Sekunden dauern würde? –

+0

Ich habe erlebt, dass der APNS-Client immer getrennt wird, dann teste ich mit 'time curl https://api.push.apple.com'. Es würde zwischen 3 Sekunden und über 1 Minuten dauern, durchschnittlich etwa 20 Sekunden. Der Relayer/Pushy-Client hat auch häufig einen SSL-Handshake-Timeout-Fehler festgestellt. Also ich vermute, das Netzwerk ist nicht zuverlässig. –

Verwandte Themen