Ich muss Browser Push-Nachrichten sogar erstellen, wenn die Seite nicht geöffnet ist. Aber ich habe einige Einschränkungen, weil ich es in Salesforce entwickle. Also, wenn Seite geladen ist, habe ich JavaScript-Block, der Back-End-Methode aufruft und Antwort in Callback-Funktion erhält. Und ich habe festgestellt, dass ich theoretisch serviceWorker verwenden kann und es über PostMessages mit der Seite kommunizieren kann und es Benachrichtigungen anzeigen kann. Ich habe bereits ein Beispiel gefunden, um eine Benachrichtigung durch Klicken auf eine Schaltfläche anzuzeigen, aber ich muss immer noch herausfinden, wie man serviceWorker benutzt, um mit der Seite zu kommunizieren, um eine Antwort vom Server zu erhalten. Ich habe dieses Handbuch über serviceWorker http://www.html5rocks.com/en/tutorials/service-worker/introduction/ gesehen, aber es ist nicht sehr klar für mich. Ich möchte keine Middleware als GCM, nur JS auf Client-Seite verwenden. Bitte geben Sie mir einen Beispielcode, um es zu tun.Browser-Push-Benachrichtigung durch einfache Abfrage Webserver
Antwort
Nein .... Derzeit gibt es nur eine Möglichkeit, Push-Benachrichtigungen für Benutzer zu zeigen, wenn Ihre Website mit service worker api geschlossen wird.
Der erste Weg zeigt Ihnen die Push-Benachrichtigung nur, wenn Ihre Website geöffnet ist. 1) Ajax Polling Dies ist Ansatz heißt Kometen-Ansatz, der von Facebook verwendet wird. Bei diesem Ansatz werden Sie den Server im regulären Intervall abfragen (dh Sie müssen in regelmäßigen Abständen einen Ajax-Aufruf an den Server durchführen), um zu überprüfen, ob der Benutzer eine neue Benachrichtigung zum Anzeigen hat. Bitte überprüfen Sie den folgenden Code: $ (Dokument) .ready (function() { setInterval (updateCount, 120000); }); var update = function() { var url = example.com // geben Sie Ihre eigene url
$.ajax({
url:ajaxURl,
type: "POST",
dataType:"json",
error: function(error){
console.log("Error occured in the ajax call while saving the endpoint",error);
},
success:function(data){
console.log(data)
if(data == new notifcation){
//then show notification
}
},
timeout:60000
});
};
This is simple approach to show the notification to the user.
Cons:- 1)It will trigger to many ajax call to the server which will eventually increase the load on the server.
2)User have to be logged in to the system then only you can show notification to end user.
2) Service-Worker Api Bei diesem Ansatz müssen Sie die Servicemitarbeiter api in dem Client-Browser registrieren. Sobald die Server Worker API registriert ist, wird sie im Hintergrund des Browsers ausgeführt und wartet auf das Push-Ereignis. Wenn das Push-Ereignis den Service Worker auslöst, wird die Push-Benachrichtigung auch dann ausgelöst, wenn Ihr Benutzer nicht auf Ihrer Website angemeldet ist.
Cons:- 1)the service worker api will only run in the certain browser
2)Your website should https for using the service worker api as they already mention in the article.
Ich hoffe, dass ich Ihre Frage beantwortet ..
sollten Sie auch eine Codeerklärung hinzufügen. !! –
der erste Ansatz, den Sie erwähnt haben, ist völlig falsch !! @ ravi-gupta Lesen Sie die Frage sorgfältig "wenn die Seite nicht geöffnet ist" –
- 1. einfache Abfrage: nicht durch SQLite JDBC-Treiber
- 2. NHibernate - einfache Join-Abfrage
- 3. Verlassen von Division durch Null in einfache Abfrage
- 4. Hibernate für einfache Abfrage
- 5. einfache LINQ-Abfrage
- 6. Subsonic - Einfache Abfrage
- 7. Eine einfache Linq-Abfrage
- 8. Einfache Abfrage SQLite Android
- 9. Einfache SQL-Abfrage in PHP
- 10. Sehr einfache Abfrage über Flex
- 11. Einfache SQL-Abfrage zum Löschen
- 12. Einfache Firebird Abfrage sehr langsam
- 13. Einfache SQL-Abfrage mit Autonummern
- 14. SQL 'einfache' Abfrage Syntaxfehler - Hilfe!
- 15. Warum dieser einfache Webserver gerade Nummer genannt wird?
- 16. So führen Sie eine einfache angularjs-Anwendung ohne Webserver
- 17. Wirklich einfache UPDATE-Abfrage funktioniert nicht
- 18. Hibernate - Einfache Daten, aber komplexe SQL-Abfrage
- 19. Einfache Iteration durch eine Integer-Enumeration?
- 20. Php - Verständnis create_function() - durch einfache Variable
- 21. eine sehr einfache Abfrage funktioniert nicht PHP
- 22. Einfache mysql Abfrage nur eine Zeile zurückgibt
- 23. Warum dauert diese einfache Abfrage für immer?
- 24. Meine einfache MySQL-Abfrage nicht verwendet Index
- 25. Einfache Abfrage zum Generieren von Datenbankmetriken?
- 26. Einfache SQL-Select-Abfrage zwischen zwei Tabellen
- 27. Abfrage auf SweetAlert Einfache Nachricht Box
- 28. Linq einfache Abfrage mit 2 Tischen
- 29. Einfache SQL-Abfrage Problem mit 2 Tabellen
- 30. Deadlock in Postgres auf einfache Update-Abfrage
Können Sie Ihr Ziel klären? Sie benötigen keinen Service-Mitarbeiter, wenn Sie nur eine Benachrichtigung anzeigen möchten, während Ihre Seite geöffnet ist. – Marco
@Marco Ich muss benachrichtigt werden, wenn die Seite geschlossen ist. Dies ist ein Beispiel https://storage-cdn.realtime.co/chrome-push/index.html – vladdihoney
Leider gibt es keine Möglichkeit, eine Benachrichtigung zu erhalten, wenn die Seite geschlossen wird, ohne den Push-Dienst des Browsers zu verwenden. – Marco