Popup auf entferntem Clientöffnen oder so - Keine Ahnung
Gustl
- cgi
Ich brauche sowas wie einen Messenger, ähnlich einem Dialog wie man ihn vom Chat kennt.
2 User sind auf einer WEB-Plattform eingeloggt. Der eine sendet dem andern ne Nachricht, beim andern geht ein Popup auf und dann können sich die beiden fröhlich unterhalten :-)
Das kennen wir alle, aber wie realisiert man sowas ?
Mit java-applets hab ich nichts am hut, ich kenne aber einige web-portale die machen das mit popups. popup geht auf, pling, wenn mir der andere ne nachricht schickt.
Lösungsansätze (sehr wackelige):
1.) ich muss feststellen, ob der user online ist der eine nachricht erhalten soll. wie geht das ? indem ich einen ping an REMOTE_ADDR sende und der beantwortet wird. wie geht das ???
2.) ist er online, mache ich (irgendwie - heul) bei dem automatisch ein popup auf. darin steht: der user GRIMBL_GRUMBL will mit dir nen dialog führen. antworten ? usw ... wie geht das ?
3.) Dass die beiden auch richtig zusammenkommen, das kann doch nur mittels IP oder einer Session-ID gehen, oder ? Über die globale variable HTTP_X_FORWARDED_FOR kann ich aber die meisten client-ip´s gar nicht rausfinden. reicht hier REMOTE_ADDR ?
menno, kann mir das spiel jemand erklären ?
Danke ergebenst !
--
Theorie: Alles ist möglich - Praxis: Nix funzt - Ich bin eben ein Mann der Praxis
Hi,
Das kennen wir alle, aber wie realisiert man sowas ?
wie auch immer es realisiert wird: Es geschieht nicht über HTTP. Dieses Protokoll ist dafür komplett ungeeignet.
1.) ich muss feststellen, ob der user online ist der eine nachricht erhalten soll. wie geht das ?
Das kommt darauf an, welche Protokolle Dir zur Verfügung stehen - und wie Du "online" definierst.
indem ich einen ping an REMOTE_ADDR sende und der beantwortet wird.
Das könnte im Zweifel auch eine Fax-Karte sein, die bei Bedarf den Rechner einschaltet.
2.) ist er online, mache ich (irgendwie - heul) bei dem automatisch ein popup auf. darin steht: der user GRIMBL_GRUMBL will mit dir nen dialog führen. antworten ? usw ... wie geht das ?
Das kommt darauf an, welche Protokolle Dir zur Verfügung stehen. Und natürlich davon, welche Applikationen der User am Zielrechner zu installieren bereit war.
3.) Dass die beiden auch richtig zusammenkommen, das kann doch nur mittels IP oder einer Session-ID gehen, oder ?
Nur wenn Du meinst, man könne ein Steak braten, indem man sich neben den Herd stellt und "Brate! Brate! Brate!" ruft. Übrigens plenkst Du.
Über die globale variable HTTP_X_FORWARDED_FOR
HTTP_X_FORWARDED_FOR mag ein Key für den HTTP-Header X-Forwarded-For sein, nicht jedoch eine globale Variable. Hoffentlich nicht, zumindest, weil ich ansonsten die Sicherheit Deines Frameworks in Zweifel ziehe.
kann ich aber die meisten client-ip´s gar nicht rausfinden.
Richtig.
reicht hier REMOTE_ADDR ?
Das hat eine noch geringere Aussagekraft. Wie gesagt ist Dein Problem in HTTP nicht lösbar, also macht es auch keinen Sinn, sich auf HTTP-Header zu stürzen. Wähle ein geeignetes Protokoll, zu dem auf beiden Rechnern ein Client installiert sein muss.
Cheatah
Danke, Cheatah, aber jetzt bin ich genauso gescheit wie vorher.
--
Theorie: Alles ist möglich - Praxis: Nix funzt - Ich bin eben ein Mann der Praxis
Hi,
Das kennen wir alle, aber wie realisiert man sowas ?
Am besten, du nimmst dir eine Communitysoftware (Xoops z.B.) und siehst dir das entsprechende Modul einfach im Quelltext an.
Hi,
such mal nach dem Stichwort AJAX, damit kann man zumindest teilweise den Client benachrichtigen (mit setTimeout etc.)
E7
hi,
such mal nach dem Stichwort AJAX, damit kann man zumindest teilweise den Client benachrichtigen (mit setTimeout etc.)
Nein, das kann man damit auch nicht.
Es ist immer noch ein PULL (Anfordern der Daten _vom_ Server _durch_ den Client erforderlich).
Einen PUSH bekommst du auch mit AJAX nicht hin.
gruß,
wahsaga
hi wahsaga, du scheinst dich doch sehr gut auszukennen, aber dein posting hilft MIR ja nix. immerhin ist das mein thread, kannst du mir nun helfen oder möchtest du mir nur rätsel aufgeben ?
Gustl
hi,
du scheinst dich doch sehr gut auszukennen, aber dein posting hilft MIR ja nix.
Die Antwort sollte dich zumindest davon abgehalten haben, einen nicht erfolgversprechenden Weg weiterzuverfolgen.
immerhin ist das mein thread,
Aber sonst geht's dir noch gut?
kannst du mir nun helfen oder möchtest du mir nur rätsel aufgeben ?
Nein, ich glaube nicht, dass ich/man dir derzeit sehr viel weiterhelfen kann.
Cheatah hatte dir ja bereits eine ziemlich umfassende Antwort gegeben - und wenn alles, was daraufhin von dir kommt der Hinweis ist, dass du damit "genauso gescheit wie vorher" bist, sehe ich nicht, wo man dir noch helfen könnte.
Cheatahs Antwort enthielt eine Menge Hinweise und auch impliziter (Rück-)Fragen, von denen du bisher aber auf keine(n) einzige(n) eingegangen bist.
Wenn du also nicht bereit bist, dich an Hand von Hinweisen und Stichworten genauer zu informieren, um daraufhin dein Problem ausführlicher darstellen zu können (insb. natürlich in den erwähnten unklaren Punkten), halte ich eine weitere _Hilfe_ in dem Sinne, wie sie hier im Forum bereitgestellt wird - Hilfe zur _Selbst_hilfe - für nicht möglich.
Du wurdest darauf hingewiesen, dass dein Problem nicht so trivial ist, wie es dir anfangs erschienen sein mag - also erwarte jetzt bitte nicht, durch wiederholtes Stellen der immer noch nicht verfeinerten und detailierteren Ausgangsfrage eine aus dem Hut gezogene "Lösung" präsentiert zu bekommen.
gruß,
wahsaga
Hi,
Einen PUSH bekommst du auch mit AJAX nicht hin.
kann man aber simulieren, wenn man alle 2 Sekunden oder so eine Anfrage an den Server sendet, dann hat man schon fast einen Kanal über den der Server auch was an den Client mitteilen kann, und das ist quasi schon ein PUSH.
E7
Hallo E7,
Einen PUSH bekommst du auch mit AJAX nicht hin.
kann man aber simulieren, wenn man alle 2 Sekunden oder so eine Anfrage an den Server sendet,
Wenn der Client Anfragen sendet, dann nennt man das "Pull" nicht "Push".
dann hat man schon fast einen Kanal über den der Server auch was an den Client mitteilen kann, und das ist quasi schon ein PUSH.
Nein, ganz gewiss nicht. Beim Server-Push geht die Aktion vom Server aus, nicht vom Client.
Freundliche Grüße
Vinzenz