2009-08-02 5 views
34

Nur neugierig. Wie funktioniert das Chatten in einem Browser? Wenn ein Benutzer auf eine Webseite zugreift, fordert sein Webbrowser normalerweise den Seiteninhalt an. Ein Server erzeugt eine Ausgabe und sendet sie an den Computer des Benutzers. Aber beim Chatten ist es ein bisschen andersherum (naja, nicht genau). Es ist nicht der Benutzer, der eine Chat-Nachricht von einem Server anfordert, sondern der Server, der es direkt sendet. Jetzt ist das mit einem "normalen" Server sehr einfach zu erreichen, aber die Sache, dass der Server es direkt an einen Browser sendet, verwirrt mich. Das Posten des Nachrichtenteils ist alles klar, es ist einfach. Sie postet die Daten einfach mit zB Ajax oder etwas auf dem Server. Aber wie weiß der andere Computer sofort, dass eine Nachricht darauf geschrieben wurde? Es muss offensichtlich der Server sein, der es an den anderen Computer sendet, sobald es geschrieben wurde. Aber irgendwie berechnet sich das nicht in meinem Gehirn. In meinem Gehirn verlangt der Browser nur Dinge, die er nicht nur bekommt. Wie genau machst du das?Wie funktioniert der Chat im Browser?

Nehmen Sie Google Talk in Google Mail zum Beispiel. Wie funktioniert das? Wie wird es umgesetzt?

Antwort

11

Es gibt einige push technologies, wie Comet, aber sie sind nicht weit verbreitet. Die meiste Zeit wird dies über polling in einem kleinen Intervall mit AJAX und dem Herunterladen neuer Nachrichten, die seit der letzten heruntergeladenen Nachricht verfügbar sind, durchgeführt.

+0

Das macht Sinn, und so dachte ich, es funktionierte. AJAX-Anfragen in kleinen Abständen. Ich habe jedoch gesehen, wie Google Talk funktioniert (mit Firebug), als ein Freund mir Nachrichten eintippte, mein Computer keine Anfragen machte und trotzdem die Nachricht angezeigt wurde. – quano

+0

Sie können es normalerweise dazu zwingen, lange offene Verbindungen zu halten und hin und wieder ein Stück einer Nachricht in das Rohr zu leiten. Sie müssen jedoch mit Timeouts fertig werden und dann die Verbindung wiederherstellen. – Joey

+0

verwenden sie Server gesendet Ereignisse? –

7

Werfen Sie einen Blick auf Comet

2

Es nutzt AJAX - eine clientseitige JavaScript sendet auf dem GMail Browser des Benutzers ausgeführt wird und empfängt die Nachrichten aus dem Google-Server und schreibt sie in das Browser-Fenster - kein erneutes Laden der Seite erforderlich.

4

Orbited ist eine gute Möglichkeit, dies zu implementieren, verwendet es Kometenmethoden. Sie finden ein Tutorial here.

Jemand erwähnt Ajax Polling, aber comet is always better than polling. Nun, das ist nur ein sensationeller Titel, aber der Kometen ist definitiv geeigneter und kann zu weniger Stress auf der Server-Seite mit dem richtigen Back-End führen.

0

Moderne Chat-Anwendungen verwenden SSE (Server Sent Events: eine Funktion von html5) neue Nachrichten an Browser senden

+0

Dies beantwortet nicht wirklich wie es funktioniert und ist implementiert. –

Verwandte Themen