Frage

Ich erwähne nur wenige Optionen, um Daten für meine Webanwendung in Echtzeit vom Server zum Client zu bringen.

Ich habe nach jeder 30 Sekunden einen Umfragebasis implementiert (jeder Client sendet HTTP -Anforderungen an den Server.) Anwendung, die nach 10 Benutzern wirklich nicht skaliert wird. Diese App. wird mit MySQL, PHP, HTML und JQuery gebaut.

Bitte schlagen Sie vor, welches die folgenden Anforderungen besser berücksichtigen würde - ape vs node.js

  1. Sollte in der Lage sein, mindestens 400 gleichzeitige Verbindungen gleichzeitig zu handhaben
  2. Der Server sollte in der Lage sein, Daten an alle diese Clients zu bringen.
  3. Clients würden Daten zwischeneinander senden.
War es hilfreich?

Lösung

Ich empfehle Ihnen dringend, sich das anzusehen Socket.io. Es handelt sich um eine vollständige Lösung für den Server -Push, der sowohl die Server -Seitenbibliothek (in Node.js) als auch die Client -JS -Bibliothek enthält, die auf Kreuzbrowser erstellt wird. Ich sehe keinen Grund für Sie, Ihren eigenen Code zu implementieren, um das zu tun, was bereits gemacht, gearbeitet und getestet wurde.

Der einzige Fall, den Socket.io nicht behandelt, ist Ihre dritte Anfrage, aber das ist trotzdem unmöglich. Wenn ich Sie richtig verstehe, möchten Sie, dass zwei Clients ohne Hilfe des Server Dritter kommunizieren? Sie können HTTP nicht in P2P ändern, zumindest nicht jetzt.

Wenn Sie andererseits zwei Benutzer über Ihren Server kommunizieren (so etwas wie einen privaten Zwei-Personen-Chat), der mit Socket.io völlig machbar ist.

Andere Tipps

Obwohl derzeit alle auf node.js zu rennen, haben wir eine Chat -Anwendung basierend auf AFFE Und wir sind sehr zufrieden damit.

APE bietet das, was Sie suchen, um ziemlich "aus der Box" zu suchen, da es sich um eine Kombination aus Server -Seite JS und einem Client -Framework ape_jsf handelt, das die Funktionalität (und mehr) bietet, die Sie von Socket.io erhalten.

In diesem Projekt kümmern wir uns um ~ 9000 gleichzeitige Benutzer mit Echtzeitnachrichten. Ein Nginx -Server wird vor APE gestellt, um Deflate/GZIP -Unterstützung bereitzustellen

Diese Konfiguration (auch ohne NGINX) hat kein Problem damit, sich mit Ihren Anforderungen zu befassen, selbst auf einer "nicht so High -End" -Maschine.

Da Sie Daten in "einen Kanal" oder einen einzelnen Benutzer übertragen können, sollten Sie in der Lage sein, genau das zu erreichen, wonach Sie mit APE suchen, von Sendungen bis hin zu Direktnachrichten.

Wenn Sie Apache in Ihrem vorhandenen Stack verwenden, wie Sie bereits gesagt haben, werden Sie Probleme mit der Skalierung von Ihren Benutzern geben, auch wenn Sie verwenden lange Umfragen anstelle von kontinuierlich. Lösung könnte sein, Hochleistungs -Webserver wie nginx um viele gleichzeitige Verbindungen zu verarbeiten.

Andererseits wird Node.js für diese Art von Verbindungsverhältnis hergestellt, und es gibt Pakete wie Socket.io, was Ihrem Entwickler das Leben erheblich erleichtern kann, da er verschiedene Arten von Transportoptionen mit Fallback -Lösungen und anderen nützlichen Funktionen bietet.

Ich würde APE nicht für große Anwendungen empfehlen. Es ist in Ordnung für Chat -Anwendungen, aber was den Massendatentransport betrifft, beginnt sich der Browser des Kunden zu verlangsamen und nach einer Weile zu vernetzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top