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

Kommunikation zwischen Benutzern

S

Sempervivum

Guest
Hallo,
mich interessiert, wie ein Chat funktioniert und zwar in Bezug auf die folgende Frage: Wenn ein Benutzer einen Beitrag abschickt, muss dieser ja auf der Seite des Partners angezeigt werden. Senden des Beitrags an den Server ist kein Problem mit Ajax, aber wie wird die Seite des Partners aktualisiert?= Mir ist kein Weg bekannt, vom Server aus etwas an die Seite eines Benutzers zu schicken. Mir fällt nur zyklische Aktualisierung ein, aber das ist unschön und bläht den Datenverkehr auf.
Wie wird so etwas i. allg. gelöst?
 
Hallo btd600,
ich habe mir den Link jetzt angesehen. Nicht komplett durchgearbeitet, aber ich konnte so viel erkennen, dass die Abfrage der Nachrichten dort zyklisch erfolgt.
Hallo Tronjer,
danke auch für diesen Hinweis. Wahrscheinlich ist das eine gute und saubere Lösung und eine interessante Sache, aber ich wollte in dieser Angelegenheit nicht so viel Einarbeitung investieren.
 
Die Lösung von Tronjer ist aktuell und wenn die Anforderungen nicht zu komplex sind, bei bestehendem Wissen in ähnlichen Technologien, schnell zu erlernen.
 
Ich meine gelesen zu haben, dass Websockets eigentlich als native Unterstützung in HTML 5 geplant waren. Das ist wohl nicht geschehen und daher muss meines Erachtens jede Lösung, die auf JavaScript beruht, eine auf Polling basierende Lösung sein, auch wenn man das hinter einem Framework versteckt und der Entwickler nichts davon merkt. Alle mir bekannten nativen Dienste, die in der Lage sind, als Listener auf einem Port zu sitzen, sind normale Prozesse oder Threads, JavaScript fehlt alleine die Berechtigung, einen Port zu kontrollieren.

Frohe Weihnachten noch, Rainer
 
Hallo Rainer, danke auch für diesen Beitrag. Muss man das jetzt so verstehen, dass auch Tronjers Lösung auf Polling beruht?
 
Nehme ich an, aber 100% sicher bin ich nicht. Aber ich kann mir nicht vorstellen, wie man einen auf JavaScript im Browser sonst einen echten Listener Prozess erzeugen könnte. Die sitzen ja sonst auf dem Port und werden sozusagen geweckt, wenn ein Request eingeht. Normal wird dann sogar sofort ein neuer Listener Thread gestartet, um den Port nicht zu blockieren, so lange der Request, der ja eventuell eine komplexe langwierige Bearbeitung anstößt, noch abgearbeitet wird.
 
Schreibt doch einfach nichts wenn ihr euch nicht auskennt...
Na das ist eine ziemlich eingeschränkte Sichtweise, wenn man immer nur knallhartes Faktenwissen zulassen will und Diskussionen oder Hinweise auf mögliche Nebeneffekte völlig unterbindet. Zum einen sind meine Begründungen ja nicht gänzlich aus der Luft gegriffen und andererseits hat ja eventuell schon mal jemand die Sources des Frameworks analysiert und weiß, wie sie das machen.
 
Es geht mir nicht darum nur knallhartes Faktenwissen zuzulassen, aber Tronjer hat bereits eine Lösung genannt, welcher du mit, ich nenn es mal Halbwissen, widersprochen hast.

Websockets haben nichts mit einem Polling im zu tun, sondern sind ein eigenes Protokoll (ws:// bzw, wss://, mit einer spezifizierten Browser API

https://tools.ietf.org/html/rfc6455
https://tools.ietf.org/html/rfc7118
https://html.spec.whatwg.org/multipage/comms.html#network

http://caniuse.com/#feat=websockets

/e: hier ist sonst noch eine ganz gute Erklärung der Unterschiede: http://stackoverflow.com/questions/...g-websockets-server-sent-events-sse-and-comet
 
Ich habe nun nochmals nachgelesen und mein Fehler war, dass ich dachte, Websockets seien geplant, verschoben und derzeit nicht unterstützt. Das stimmt wohl aber nur für ältere Browser wie IE 9 und früher.
 
Zurück
Oben