2012-05-17 4 views
5

Ich versuche, eine Möglichkeit für Benutzer einer Website (sagen ein Student und Lehrer), eine sichere Verbindung zu teilen, wo Echtzeit-Updates auf einer Seite von beiden angezeigt werden. Aus der Forschung habe ich geschlossen, dass einige der Echtzeit-Updates mit Ajax und Javascript durchgeführt werden können.Wie teilen Sie Echtzeit-Updates auf einer Website zwischen Benutzern auf verschiedenen Computern?

Aber ich bin ratlos, wie Benutzer eine Verbindung teilen könnten, wo nur die zwei Benutzer die Updates sehen würden, die auf der Website stattfinden (wie Flash-Animationen eines Zeichenbretts). Ich bin auch wie verwirrt Du würdest sogar so eine Verbindung aufbauen.

Ich habe intp php-Sessions und Cookies aussehen, aber ich bin nicht sicher, ob ich die richtige Forschung zu tun. Beliebige Hinweise darauf, wie sich zwei bestimmte Benutzer eine sichere Verbindung teilen können, wobei Echtzeitaktualisierungen nur von beiden Benutzern angezeigt werden. Ich möchte bitte keine knappe Antwort. Ich suche nach bestimmten Details wie Funktionen und Syntax speziell für PHP. Ich schätze die Hilfe und werde Sie bewerten, wenn Sie mir gute Antworten geben!

+0

Sind Sie auf der Suche nach Google Docs, wo Nutzer die Änderungen anderer Nutzer live sehen können? Oder eine gemeinsame Bildschirmanwendung? Sie müssen genauer bestimmen, was Sie erreichen möchten ... –

Antwort

0

Sie können Ajax Push-Techniken betrachten. Ich habe einmal den Kometen benutzt, wo ein Administrator Nachrichten gepostet hat und jeder, der eingeloggt war, sah diese Nachricht auf ihrem Bildschirm. Ich weiß nicht, ob Kometen PHP unterstützt. Ich habe es nur mit JSP verwendet. Suchen Sie einfach nach "Ajax Push" in Google.

2

Sie können eine sichere Verbindung nicht teilen (zum Beispiel HTTPS) sein ein Client zu einem Server.

Wenn beide Clients angemeldet sind und eine Hintergrund-AJAX-Task im Browser ausgeführt wird, ist es akzeptabel, dass jeder Client alle paar Sekunden die gleichen Daten "zieht", die für beide Benutzer angezeigt werden?

Dies würde das „Reißbrett“ Updates erfordert auch an den Server gesendet werden kontinuierlich zurück mit dem anderen Client der aktualisierten Daten zu teilen. Ich bin sicher, dass es ein Ereignis geben wird, das Sie verwenden können, um den Datenposten auszulösen (z. B. bei Maus hoch).

Wenn die Leistung ein Problem ist, dann würden Sie wollen eine bessere Server-Technologie wie Java verwenden, die in der Lage ist, um den Sitzungszustand zwischen den Anforderungen zu halten, ohne auf eine Datenbank zu bestehen zu haben.

-1

Ich bin sicher, dass Sie sich das angeschaut haben. Die Meinung, dass dies über Ajax getan werden kann, ist irreführend zu glauben, dass zwei Benutzer einer Website über Javascript kommunizieren können.

Wie Sie wissen, geschieht Javascript auf dem Client und Ajax im Wesentlichen ‚ohne Seitenwechsel an den Server zu sprechen oder aktualisieren.‘

Die Kommunikation zwischen zwei Benutzern der Website muss über den Server - PHP und einige ausgewählte Datenspeicher geschehen.

Hoffe, dass war nicht kurz. Prost, Rob

0

Flash ermöglicht Verbindungen zwischen Benutzern, ich denke, sie beziehen sich auf sie als Sockets.
Wenn Sie Ajax, et al. Verwenden möchten, benötigen Sie eine serverseitige Technologie, die Push unterstützt.
Knoten ist der Standard in dieser Hinsicht, und Sie können eine Heroku-Instanz kostenlos einrichten.

Es gibt andere, und Sie müssen Werkzeuge lernen, bevor auch Anwendung zu lernen beginnen.

Unter den vielen Übersichten, das Sie interessieren könnte:
http://arstechnica.com/business/2012/05/say-hello-to-the-real-real-time-web/?1

0

ein paar gute Beispiele, wo dies geschieht:

Techniken, die Sie (mit unterschiedlichen Browser-Unterstützung)

wirklich Daten zu einem von einem Server Web-Browser-Client schieben (was das tun würde, wenn er etwas von einem anderen Client) empfängt mit WebSockets nur möglich ist, soweit ich weiß. Andere Mechanismen würden entweder Browser-Plugins oder eine eigenständige Anwendung erfordern.

Mit Comet (über AJAX) können Sie jedoch sehr nahe an die Daten pushen, indem Sie den Server regelmäßig nach Daten abfragen. Im Gegensatz zu herkömmlichen Abfragen (z. B. wenn ein Client alle 5 Sekunden nach Daten fragt) hält der Server diese periodische Anfrage mit dem Comet-Prinzip für beispielsweise bis zu 30 Sekunden als Geisel. Der Server sendet keine Daten zurück, bis entweder Daten vorliegen oder die Zeitüberschreitung erreicht ist. Auf diese Weise können alle Daten, die der Server innerhalb dieser 30 Sekunden erhält, sofort an die anderen Clients zurückgegeben werden. Und direkt danach startet der Client eine neue 30-Sekunden-Sitzung und so weiter.

Obwohl sowohl Comet als auch WebSockets mit einem PHP-Backend arbeiten sollten, das von Apache bedient wird. Ich würde empfehlen, in NodeJS (als Server-Technologie) dafür zu suchen.

Es gibt eine Menge Informationen über Comet im Internet, ich schlage vor, Sie googeln, vielleicht bei Wikipedia starten.

Das Tolle an Comet ist, dass es mehr ein Prinzip als eine Technologie ist. Es verwendet, was wir bereits haben (einfache HTTP-Anfragen mit AJAX), so dass die Browser-Unterstützung sehr breit ist.

Sie können auch eine Kombination ausführen, bei der Sie Sockets verwenden, sofern unterstützt, und Fallback zu Comet.

Verwandte Themen