it-swarm.com.de

So erstellen Sie eine Push-Benachrichtigungsfunktion in Echtzeit, wie dies bei Facebook der Fall ist

Ich erstelle eine Push-Benachrichtigungsfunktion in Echtzeit für meine Webanwendung (ein kleines soziales Netzwerk) und weiß nicht, wo ich anfangen soll.

Folgendes möchte ich erstellen: Es gibt Schaltflächen, Kommentarformulare, ... Benutzer klicken auf "Gefällt mir", schreiben ihre Kommentare und (relativ) sofort, im Browser des Besitzers wird die Anzahl der neuen Likes und Kommentare angezeigt, ... So etwas wie Das.

Ich habe über SocketIo auf NodeJs, MeteorJS, gelesen, aber leider benötigen sie WebSocket, das von modernen Browsern unterstützt wird. Ich habe gerade über die Comet-Technik gelesen und finde es ziemlich einfach, sie anzuwenden. Ich bin mir jedoch nicht sicher, ob es eine gute Leistung bringen wird, da Comet auf eine Verbindung mit langen Abfragen angewiesen ist (korrigieren Sie mich, wenn ich mich irre).

Ich denke außerdem, dass Facebook Comet für seine Push-Benachrichtigungsfunktion verwendet. Über die Registerkarte "Konsole" im Firebug-Plugin kann ich sehen, dass immer eine Verbindung zu Facebook besteht. Kann mir jemand eine Technik zeigen, ein Modell, um ein solches Feature zu entwickeln?

17
Hieu Pham

Eine vielversprechende Idee ist, mit der HTML5-Benachrichtigungs-API zu arbeiten. Es ist perfekt, wenn Benachrichtigungen auf dem Benutzerbildschirm angezeigt werden sollen, solange sein Browser ausgeführt wird (auch wenn Sie auf einer anderen Website surfen oder wenn alle Fenster geschlossen sind).

http://www.paulund.co.uk/html5-notifications

Wenn Sie jedoch verschiedene Teile Ihrer Seite asynchron aktualisieren möchten (ohne eine Schaltfläche zu aktualisieren oder zu drücken), sollten Sie Folgendes zusammen verwenden:

  • Ajax ruft an;
  • Zuhörer und Beobachter.

Wenn Sie bei Ajax-Aufrufen bestimmte Arten von JSON-Daten abrufen (z. B.), wird möglicherweise ein Abzeichen (Listener) mit einer Reihe neuer Benachrichtigungen angezeigt.

Wenn JQuery installiert ist, sollte es Ihnen gut gehen ...

Auch wenn dies oft nicht der Fall ist, ist es bei einfachen Änderungen manchmal einfacher, die geleistete Arbeit zu codieren ...

Sie können hier anfangen:

Wie ein "Beobachter" in Jquery ohne Plugins implementieren? (es ist alt, aber interessant)

Oder sehen Sie diese Seite:

Browser sofortige Updates mit Ajax/jquery

(Unglaublich, wie oft Google-Abfragen Stacko-Seiten zurückgeben.)

17
Bruce BENAMRAN

Sie sollten MQTT auschecken. Grundsätzlich funktioniert es mit dem Publish-Subscribe-Modell und ist sehr einfach zu bedienen. Dieses Protokoll hat einen geringen Platzbedarf und verbraucht weniger Bandbreite. Facebooks Messenger verwendet ebenfalls MQTT.

1
anudroid

sie können einen Ajax-Aufruf verwenden, der beispielsweise in ein PHP-Skript auf dem Server eingeht, das die Verbindung offen hält und nur antwortet, wenn dem Benutzer etwas angezeigt werden muss. Sollte innerhalb einer bestimmten Zeit nichts passieren, wird die Verbindung geschlossen und der Client löst einen neuen Ajax-Aufruf aus. Beachten Sie, dass dies nur die Client/Server-Kommunikation betrifft. Sie benötigen dennoch eine Benachrichtigungsmethode im Server, um das PHP-Skript zu aktivieren, wenn Sie vermeiden möchten, dass ein Skript ständig die Datenbank abfragt und sie hängen davon ab, welche Sprache Sie auf dem Server verwenden.

0
Hugo Walter