Aufbau eines Messengers wie ICQ

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Aufbau eines Messengers wie ICQ

Beitrag 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?
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag 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
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag 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.
Bild
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag 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.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag 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.
Nik
Beiträge: 132
Registriert: 04.02.2005 19:57

Beitrag 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 :mrgreen:
www.KoMaNi.de
Eine kleine Gruppe von Hobby Programmierern, die gerade einen Instant Messenger natürlich in PureBasic schreiben.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag 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?
Nik
Beiträge: 132
Registriert: 04.02.2005 19:57

Beitrag 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
www.KoMaNi.de
Eine kleine Gruppe von Hobby Programmierern, die gerade einen Instant Messenger natürlich in PureBasic schreiben.
Benutzeravatar
MJP
Beiträge: 72
Registriert: 14.10.2004 18:45
Wohnort: Nähe Frankfurt/Hessen
Kontaktdaten:

Beitrag 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
Alle Reschtsreib feler sind beabsichticht unn kosten nichs echtra ;-D
Visit ---|> http://www.Komani.de/
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag 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).
Antworten