Ich habe versucht, einige Artikel zu lesen, aber ich bin mir über die Konzepte noch nicht ganz im Klaren.
Könnte jemand versuchen, mir zu erklären, was diese Technologien sind?
Eine Sache, auf die ich jedes Mal stieß, war, dass der Server eine Verbindung offen hält und Daten an den Client weiterleitet. Wie wird die Verbindung offen gehalten, und wie erhält der Client die übertragenen Daten? (Wie verwendet der Client die Daten, vielleicht könnte etwas Code helfen?)
Welches von beiden sollte ich nun für eine Echtzeit-Anwendung verwenden? Ich habe schon viel über Websockets gehört (mit socket.io [eine node.js-Bibliothek]), aber warum nicht PHP?
*In den folgenden Beispielen ist der Client der Browser und der Server ist der Webserver, der die Website hostet.
Bevor Sie diese Technologien verstehen können, müssen Sie zunächst den klassischen HTTP-Webverkehr verstehen.
Comet ist eine Sammlung von Techniken aus der Zeit vor HTML5, die Streaming und Long-Polling nutzen, um Echtzeitanwendungen zu realisieren. Lesen Sie mehr auf wikipedia oder diesen Artikel.
Welche dieser Techniken sollte ich für eine Echtzeitanwendung verwenden (die ich programmieren muss)?
codieren). Ich habe schon viel über Websockets gehört (mit socket.io [eine node.js-Bibliothek]), aber warum nicht PHP?
Sie können PHP mit WebSockets verwenden, schauen Sie sich Ratchet an.
Tieme hat sich viel Mühe mit seiner ausgezeichneten Antwort gegeben, aber ich denke, der Kern der Frage des Auftraggebers ist, wie sich diese Technologien auf PHP beziehen und nicht, wie jede einzelne Technologie funktioniert.
PHP ist die am häufigsten verwendete Sprache in der Webentwicklung, abgesehen von den offensichtlichen clientseitigen HTML-, CSS- und Javaskriptsprachen. Dennoch hat PHP 2 große Probleme, wenn es um Echtzeitanwendungen geht:
Beachten Sie, dass PHP zwar über Erweiterungen verfügt, um Ereignisschleifen (wie libevent) und Threads (wie pthreads) im PHP-Benutzerraum bereitzustellen, aber nur sehr, sehr wenige Anwendungen nutzen diese.
PHP 7 wird ein großer Schritt sein, um auch diese Probleme zu beheben, und scheint als Plattform für Echtzeitanwendungen sehr vielversprechend.
Ich habe versucht, diese zu notieren und habe Beispiele aus der Java-Perspektive gesammelt und geschrieben.
Async-Behandlung auf der Server-Seite
Vom Server gesendete Ereignisse
Für alle Java-Entwickler, die sich mit demselben Thema beschäftigen, stelle ich es hier ein.