PHP - AJAX jQuery Server "Push" -System

8

Ich erstelle eine Web-App, die ein Benachrichtigungssystem live erfordert. Wie würde ich meinen Server einrichten, um Daten aus einer mySQL-Datenbank zu ziehen und dann an den Browser zu senden. Ich habe absolut KEINE Idee, wie man das macht. Wenn jemand helfen kann, wäre es sehr geschätzt! Ich danke dir sehr!

EDIT: Ich sollte wahrscheinlich genauer sein, ich ziehe Daten wie in XYZ kürzlich erstellt ein Konto, XZY vor kurzem ... Vielen Dank!

    
Joe Torraca 04.02.2012, 04:06
quelle

2 Antworten

13

Sie können keine Daten an einen Browser senden, aber Sie können Ihre Webseite so einrichten, dass der Server alle paar Sekunden nach Updates abgefragt wird. Eine Beispielkonfiguration wäre:

Von Ihrer Website aus haben Sie eine JavaScript-Funktion, die alle paar Sekunden auf einem Timer läuft (oder welches Intervall auch immer für Ihre Situation am besten geeignet ist).

Starten Sie den Timer beim Laden der Seite.

Diese JavaScript-Funktion ruft einen AJAX-Aufruf an einen Webdienst auf Ihrem Webserver auf (mehr dazu in einer Sekunde).

Auf der Serverseite benötigen Sie eine Art System, das diese Ereignisse verfolgt und sie irgendwo speichert, etwa in einer Datenbanktabelle mit einem Zeitstempel. Wenn zum Beispiel XYZ ein Konto erstellt, würde dies in dieser "Ereignis" -Tabelle in der Datenbank protokolliert werden.

Der vom AJAX-Aufruf aufgerufene Web-Service wird dann eine Abfrage für diese Tabelle ausführen und alle Einträge seit dem letzten Aufruf abrufen. Dann aktualisieren Sie einfach die Webseite mit diesen Ergebnissen.

Es ist natürlich nicht 100% "live", da es eine kleine Verzögerung geben wird, abhängig davon, welches Zeitintervall Sie im JS-Timer einstellen, aber es ist ziemlich nah dran.

    
TheOx 04.02.2012, 04:25
quelle
7

Sie können einen Push-Benachrichtigungsdienst für Ihre Website erstellen, der Websockets und eine angemessene Herabstufung für einen langen Abruf-Fallback für Browser verwendet, die keine Websockets unterstützen. Dies erfordert ein gutes Maß an technischem / Programmierwissen.

Einige gute Ressourcen dafür sind: Ссылка (verwendet ein node.js-Backend für die Web-Sockets und behandelt die Verschlechterung) Ссылка (eine kommerzielle Lösung, wenn Sie Ihren eigenen Dienst nicht rollen und pflegen möchten)

Für eine Liste von Browsern, die WebSockets unterstützen, können Sie nach "caniuse" suchen, das detaillierte Informationen zu Funktionen bietet, die von Browserversionen unterstützt werden.

Hinweis: Für Multi-Millionen-Benutzeranwendungen wie Facebook würde ich annehmen, dass sie die Vorteile des Websockets für mehr als 50 Millionen gleichzeitige Benutzer abgewogen haben und daraus geschlossen haben, dass die Daten über alle mit Millionen von Sockets verbundenen Knoten konsistent sind zu viel. Ich kann mir vorstellen, dass es ein logischer Albtraum wäre, dies auf einem Socket-System statt einer grundlegenden sql-ähnlichen Infrastruktur zu tun. Ich kann jedoch nicht für sie sprechen, das ist einfach meine Annahme. Sie wären jedoch überrascht, wie viele Websites in letzter Zeit Push- und Polling-Systeme verwenden:)

    
James Wagoner 28.03.2012 19:44
quelle

Tags und Links