Seite 1 von 2
Aufbau eines Messengers wie ICQ
Verfasst: 15.06.2005 14:52
von Delle
Ich befasse mich gerade mal etwas intensiver mit dem Thema "Network"...
Wäre der Aufbau eines Messengers wie ICQ in PB etwa so möglich?
1) User+Passwort werden auf einem Webserver in einer DB gespeichert
2) PB connected zur DB und trägt eigenen Usernamen + IP in eine Onlineliste
3) PB liest alle OnlineUser mit IP in z.B. eine LinkedList ein
4) PB connected via IP zu allen Usern einzeln und speichert die ConnectID ebenfalls in der LL, um die einzelnen User auch direkt kontaktieren zu können.
Wie macht man das mit der Onlineliste? Immer aller 5 Sekunden auf dem Server aktualisieren oder einfach die ConnectIDs kurz abfragen? Wenn allerdings ein User offline geht und dann wieder online, stimmt ja die IP in der LL auch nicht mehr... ginge also nur immer mit der Onlineliste vom Server oder?
Verfasst: 15.06.2005 16:17
von nicolaus
Wie macht man das mit der Onlineliste? Immer aller 5 Sekunden auf dem Server aktualisieren oder einfach die ConnectIDs kurz abfragen? Wenn allerdings ein User offline geht und dann wieder online, stimmt ja die IP in der LL auch nicht mehr... ginge also nur immer mit der Onlineliste vom Server oder?
du schickst einfach beim connecten oder disconnecten eine message an alle user die in der userlist des users sind der connecten oder disconnecten will und die clients der user die die message empfangen reagieren darauf und zeigen den user als online oder offline an
Verfasst: 15.06.2005 16:24
von MVXA
Ich würde das dann aber noch mit einem Ping ausstatten. Wenn der PC auf der anderen Seite abstürzt hat keiner ne Ahnung ob er noch wirklich Online ist und der Messenger sendet sich einen Ast ab.
Verfasst: 15.06.2005 16:28
von nicolaus
jo haste recht wobei ich so oder so in dem falle eines messangers immer nen conallive schicken würde denn so is man immer auf der sicheren seite.
Verfasst: 15.06.2005 16:50
von Delle
Also ohne viel (Programmier-)Aufwand wäre die Onlineliste auf dem Server wohl die sicherste Möglichkeit oder?
Also immer aller 5 Sekunden die DB connecten und die Timestamp aktualisieren - das Script überprüft wer die letzten 15 Sekunden NICHT aktualisiert hat und kickt denjenigen.
Verfasst: 15.06.2005 18:35
von Nik
Weil des so schön in diesen Thread passt will ich auch mal meinen Senf dazu abgeben. Und zwar kann ich nur besätigen das es mit PB möglich ist, denn ich und 2 Freunde sind bereits im Beta Status usneres Messnengers KoMaNi IM oder kurz KIM es läuft eins A alles was uns fehlt ist ein Root Server.
Wir machen das ganze nämlich über einen selbst programmierten Server und über Tcp/ip dadurch ist er damn fast selbst wenn er wie im Moment nru auf meinem Rechner Zuhause läuft. Usernamen Passwörter udn Nicknames speichern wir in ner Datenabnk ist alelrdings alles doch recht aufwendig, aber es funktioniert und zwar verdammt schnell und verdammt zuverlässig.
mfg Niklas
mehr über den KIM auf
www.komani.de
ps: bald wird es wahrscheinlich auch ein Plugin System geben bei dem wir um es auch Spiele tauglich zu machen per UDP mit dem Client verbinden werden. Den Source werden wir nicht veröffnetlichen aber es wird ein Beispiel Plugin geben und dann könnt ihr alle mit Plugins Coden

Verfasst: 15.06.2005 19:28
von Delle
Und wie macht man den Messenger nun wenn auf dem Server nur ne DB bereit steht und man selber keine .exe dort laufen lassen kann?
Verfasst: 15.06.2005 19:38
von Nik
Naja eigentlich so wie du es schon vorgeschkagen hast ich und ein Kumpel haben sowas ähnliches mal für ein mehr als Spaß gemeintes "Fernwartungstool" gemacht, da lief das ganze über FTP und der Client (es wurde 100% in Batch ja in Batch geschrieben (die windows scriptsparche) nur das warten war visual script naja auf jedenfall aht der ne dati gehabt wo seine Befehle reinkamen und dann hat er alle minute oderso da reingeschaut und die Befehle wenn nötig ausgeführt des ging. es gab sogar gerüchte das er einaml wirklich eingesetzt wurde aber nicht von mir ^^. den gibts übrigens auch auf
www.KoMaNi.de und zwar heißt er KoMaNi Ritter Beta
mfg Niklas
Verfasst: 15.06.2005 21:59
von MJP
>Und wie macht man den Messenger nun wenn auf dem Server nur ne DB bereit steht und man selber keine .exe dort laufen lassen kann?
Geht nicht sehr gut... das wäre dann beinahe ein Forum..
Du könntest das gesendete in eine DB Speichern und immer nach 5 sec wieder neu auslesen lassen... das is aber sehr umständlich...
Also einen richtigen IM Server kannst du nur auf einem Server machen auf dem sich exen ausführen lassen (Rootserver)...
THx MJP
Verfasst: 15.06.2005 22:04
von Delle
Nein! Die Nachrichten werden schon direkt zwischen den Usern ausgetauscht! Nur die UserOnlineListe soll über die DB laufen (sofern es keine andere Lösung gibt).