Schieben updates vom server
Ich würde gern erstellen einer Echtzeit-dashboard, wo, sobald es ein update, das script könnte poll-und push-updates auf dem Armaturenbrett. Kann jemand sagen, was wäre der beste Weg, dies zu tun. Wird node.js Hilfe?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update
Als der 8-10-2013 : Der Punkt, der Bibliothek und der support fehlen node.js hat meist verschwunden infact wegen libs wie meine.io können Sie tatsächlich Holen Sie sich ein und läuft in der Materie oder Stunden.
Anush, wie gesagt, in den beiden obigen Antworten, die waren sehr informativ, Sie haben 2 Lösungen für die server-Seite.
dem besten meiner Kenntnisse und Erfahrungen Node.js und Steckdose.io hat eine sehr große upperhand wegen der Einfachheit, und es Zweck der Entwicklung für Echtzeit-web - Anwendungen
Aber dann "Php ist stabil, leistungsstark" so, hier sind ein paar der Vorteile und Nachteile der beiden oben genannten frameworks.
PHP:
Vorteile:
Stabilität
Macht
Einfache Programmierung wenn Sie familier mit C++ wie backend
Einer riesigen online-Bibliothek-Unterstützung (php.net)
- Mechanismen von PHP für die Echtzeit-API mit Nachteile Nachteile
In der Regel bei der Verwendung von Long-Polling-Methode, die Ihr server verarbeiten muss, n Anfragen vom gleichen Benutzer pro Sekunde. diese 1-Anforderung enthält 8 Kb Daten + cookies werden an den server gesendet zum abrufen von Informationen. Das erhöht die Serverlast , und vielleicht wollen Sie auch zu ermächtigen, die client-everytime (für bessere Sicherheit) und somit 1 Funktion der Zulassung genannt werden n-mal aswell, die tatsächlich erhöht die Last auf dem server. mit niedrigeren n verlieren Sie Ihre epische Echtzeit. mit höherer n-Sie erstellen eine Millionen Anfragen mit 21 Personen in 4 Stunden.
Während der Verwendung von Comet haben Sie zu halten, Anfragen offen für irgendwann und kontinuierlich eine Umfrage der Datenbank oder der server-API für Veränderungen in Ihrem dashboard . Die Blockierung der ganze script und erhöht die server-Last rebellously, weil die nicht der APACHE - /IIS-threads öffnen. (Comet setzt auf Keep-Alive-Server), die außergewöhnliche Lösung, wenn verwendet mit einem leistungsstarken server, der abhängig von Ihren server machen Sie eine kluge Wahl.
Wenn mit einem immer offenen Anfrage von AJAX . wo Sie offen 1 Anforderung ständig und es offen halten, für immer, um zu hören, für die server-Seite drücken Sie äußerst überlastung der server wieder wie in Fall 2 . Ich würde absolut nicht empfehlen, dieses schrieb ich ein applet wie dieses auf http://chats.ws/ fühlen Sie sich frei, den Quellcode sehen, und überprüfen Sie ihn in der Konsole /firebug. aber der server stürzt ab, wenn es 8 Leute auf dem client.
Php Sockets (dies ist ein 1-shot BSD-Socket-Lösung gebaut in php), das problem hier ist, werden Sie gebunden, um ein paar hundert Benutzer am meisten. Dies ist die beste Lösung sonst.wie diese gibt Sie die "power" - und "Stabilität" von php mit einer einfachen Bedienung mit web-sockets. Für den client, den Sie verwenden können, die frei verteilt XMLsocket-API .Aber solche Stile buchsen sind besser geschrieben, die auf Java oder C++ statt.
PHP ist eine gute Wahl im Falle benötigen Sie nicht sehr awesome Echtzeit-api ' s und es ist die beste Sprache zum schreiben von dynamischen web-Seiten, aber wenn es um das schreiben geht ein wenig schneller, Anwendungen, PHP, fällt zurück, als es blockiert die server und frisst mehr Ressourcen.
Kommen nun auch die der zweiten Lösung.
Node.js
Knoten ist eine event-basierte server-software, was bedeutet, es wirkt nur, wenn ein Ereignis passiert, zum Beispiel sagen, wenn der Apache oder PHP startet Sie kommen und sagen, das host-OS, die Sie behandeln Anfragen auf einem bestimmten port, z.B. port 80 jetzt Sie kontinuierlich bleiben im Speicher und fressen Ressourcen, auch wenn er nicht benutzt wird. Wie im comet/für Immer Offene Verbindungen die internen Umfrage zum abrufen von Daten aus der Datenbank hält eine offene APACHE-thread für immer Essen, bis Sie Ihre Ressourcen, aber im Falle von Knoten, die das Programm startet node.js kommt in Aktion und sagt dem OS, lassen Sie es bekannt, wenn eine Anfrage auf einen bestimmten port dann geht es schlafen(also nicht alles und lässt das OS damit umgehen) wenn eine Anfrage kommt node.js schließt die Anforderung ein und geht wieder zu schlafen, was bedeutet, es funktioniert, wenn auch die geforderte und in anderen Fällen der Speicher frei bleibt und Ressourcen wie die CPU-Auslastung niedrig ist .
Node.js ist ziemlich neu und ziemlich instabil manchmal, aber wenn geschrieben schön es steigert die performance Ihrer Anwendung und erstaunlich. Es hat eine gute Unterstützung und möchten Sie vielleicht zu besuchen, die javascript-chatroom auf chat.stackoverflow.com erhalten Sie Hilfe unter node.js mit sockel.io als backend.
Was-Buchse.io macht, ist, dass der Programmierer zu schreiben, nur seine Anwendung und NICHT die grundlegenden Dinge, die für die Kommunikation benötigt es verarbeitet automatisch die Transport Methoden in der Reihenfolge
tun dies stellt sicher, dass Ihr Programm läuft mit der gleichen Geschwindigkeit und Qualität auf allen web-Browsern und Node.js wie der server.
Beim lernen node.js Sie werden verstehen, wie einfach es ist, zu schreiben, Dinge, die waren extrem hart auf php. zum Beispiel sagen auf php für immer öffnen Sie den code für das senden Benutzer die Daten bei der availibe aus der Datenbank (z.B. mysql für jetzt)
Nun müssen Sie auch etwas zu verwalten, die Eingabe-Datenbank und so weiter also 1 Datei in .php-format zu nehmen-Eingang.
Statt dessen die node.js code geschrieben, mit sockel.io Aussehen wird
Wenn Sie NICHT bereits erwähnt gibt es KEINE für/while(true) Schleife in der letzteren und damit es nicht blockiert server in keiner Weise dies ist die grundlegende upperhand mit node.js mit sockel.io über php Polling , Kometen , oder BSD Sockets.
Nun gut Wahl! Wählen Sie klug 🙂 wie Ihre Anwendung hängt davon ab fühlen Sie sich frei, zu Fragen, mehr Zweifel auf chat.stackoverflow.com oder hier 🙂
Denke ich node.js wird eine Menge helfen, und schnell. Ich würde empfehlen, dass Sie einen Blick auf socket.io.
Ich würde schauen, ajax, es ist ein system, das verwendet javascript & css-abrufen von Informationen aus einer back-end (php, asp.net etc.), während nicht ein Neuladen der gesamten Seite.
Dann gibt es reverse-ajax, die im Grunde öffnet eine Verbindung zum server, aber der server wird nicht alles zurückzugeben, was halten die Verbindung offen. Dies hält die Kunden aus mit, um den server Abfragen (wiederholbar bitten Sie den server) für Informationen, die Kürzungen auf Kosten der Bandbreite, die für Benutzer und server. Der client öffnet eine Verbindung und der server kann das senden von Informationen, wenn es verfügbar ist (repliziert schieben, Informationen an den client, obwohl der client gestartet, der die Verbindung).
Auch, hier ist ein Artikel eingehender über reverse-ajax, und die verschiedenen Implementierungen: http://gmapsdotnetcontrol.blogspot.com/2006/08/exploring-reverse-ajax-ajax.html (Dank jacob)
node.js ist eine server-side-Implementierung von JavaScript (meines Wissens). Dies ist nicht erforderlich, eine back-end geschrieben werden kann, in php, asp.net oder wirklich alles. Wenn du das Lesen solltest Darkyen Antwort, er bringt einige gute Punkte auf, warum node.js ist ein besseres backend dann sagen, dass php für diese Art von Arbeit. Was Sie wollen, obwohl Sie eine Bibliothek, um ajax einfach. Ich benutze jquery, aber es gibt viele große Bibliotheken zur Auswahl, darunter prototype, Mootools und YUI.
Ich hoffe das hilft dir.