• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Chatsystem wie bei Facebook

stenz

Mitglied
Hallo,

auf Facebook leuchtet jedes mal links oben in rot dieses Benachrichtigungssymbol, falls man eine neue Nachricht erhalten hat beziehungsweise es ploppt auch zeitgleich das Chatfenster auf.
Würde sehr gerne erfahren wie das geht.
Am einfachsten kann ich mir es einfach so vorstellen, das in Javascript jede 100 millisekunde einmal eine Funktion aufgerufen wird, welches überprüft ob eine neue Nachricht angekommen ist.
Falls ja, dann wird ein Chatfenster geöffnet und links oben wird es rot.
Falls nein, dann passiert nichts.

Jedoch gibt es dann noch solche Funktionen wie ob der gegenüber die Nachricht gelesen hat, welches wohl mit einem mouseclick event getriggert wird.
Oder falls der gegenüber eine Nachricht schreibt, das man sieht das der Andere etwas eintippen tut.
Naja da hörts dann auf wie das wohl funtkioneren könnte.
Habe heute Sachen mit Sockets durchgelesen, aber so richtig verstanden hab ich das nicht. Da hies es dass der Server dann automatisch an den Clienten die Informationen weiterreichen tut falls eine Information empfangen wird, sprich setTimeout wäre dann überflüssig.

Frag mich jetzt bloß was wäre performanter, einfach besser?
Bei Javascript/JQuery arbeitet einmal der Browser des Clienten, der auch noch dann ständig Anfragen an den Server ggf. an die DB auch noch Anfragen schickt.
Bei den Sockets/Websockets Thema, hab ich das so bisher verstanden, das clientseitig fast nichts am laufen ist, sondern der Client dann nur der "Empfänger" von neuen Informationen vom Server ist. Aber zu dem Thema kann ich einfach nichts, und ehrlich gesagt auch mir nicht so richtig vorstellen wie das abläuft.

Offf hoffe das es einigermaßen verständlich ist worauf ich hinaus wollte :)
Hoffentlich wird es par Anregungen geben
Gruß
Stenz
 
Werbung:
Also ich habe zwar ein Chat jetzt entworfen.
Jedoch arbeite ich mit Jquery, $.post in Verbindung mit settimeout.
Habe jetzt bedenken das, wenn sich viele User auf der Seite sind und auch noch chatten, dass es nicht mehr reibungsfrei funktioniert. Da evtll. zu viele Requests an den Server eingehen?
Habe ich recht mit meiner Vermutung?

Interessenshalber hab ich mal bei Facebook nachgeschaut, was da alles im Netzwerk hin und her ausgetauscht wird.
Und das war zu meinem verwundern sehr sehr wenig.

Bei mir wird jede Sekunde eine Abfrage gesendet, ob eine neue Nachricht vorliegt. Bei Facebook und ich nehme an auch bei anderen großen Networks wird das anders gehandhabt.

Als ich dann noch ne Nachricht von einem anderen Account an mich gesendet hatte, passierte im Netzwerk Protokoll auch nicht viel bzw. gar nichts.

Was geschieht da im Hintergrund, ist es doch Ajax? Kenn mich damit nicht sehr gut aus. Kann mir auch vorstellen, dass der Server falls er eine Nachricht von Person B erhält, den Empfänger A automatisch eine Information sendet. Jedoch wie wäre da der Ansatz? (PUSH Server?)

MfG
 
Werbung:
wahrscheinlich löst facebook das wirklich über Web-Sockets. Dabei schickt der Server Nachrichten an den Clienten, ohne dass dieser Vorher eine Anfrage vorgenommen hat. So kann man z.B. wenn jemand eine Nachricht schreibt diese im php-script allen "verbundenen" clients zuschicken. Facebook verwendet allgemein immer neue Techniken, z.B. auch History-Manipulation. Das Problem dabei ist, dass das auf alten Browsern nicht funktioniert. Schau also mal in nem alten IE ob da das Netzwerk auch so ruhig bleibt.
 
Zurück
Oben