AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Chat Konzept mit Adminanwendung. Wie die Clients verwalten..
Thema durchsuchen
Ansicht
Themen-Optionen

Chat Konzept mit Adminanwendung. Wie die Clients verwalten..

Ein Thema von Thomas83 · begonnen am 28. Apr 2008 · letzter Beitrag vom 28. Apr 2008
Antwort Antwort
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#1

Chat Konzept mit Adminanwendung. Wie die Clients verwalten..

  Alt 28. Apr 2008, 10:37
moin,

bei uns in der Firma nutzen wir ein Chatsystem welches wir selber programmiert haben.
Es gibt einen Server wo sich alle Clients anmelden. Die Clients werden in einem Array verwaltet.
Jetzt soll es noch eine Adminanwendung geben die kontrolliert wer Online ist, was geschrieben wird etc.

Die Admin Anwendung soll nur beobachten.

Wie würdet ihr das machen.
In der Adminanwendung alle Clients auch noch mal verwalten, heist also im Array verwalten.
Oder nur der Adminanwendung eine Nachricht schicken neuer Client ist Online.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Chat Konzept mit Adminanwendung. Wie die Clients verwalt

  Alt 28. Apr 2008, 10:53
Eine Liste, also eine Klasse von TList oder TObjectList abgeleitet wäre besser geeignet als das Array.
Grund: bei einem Array entsteht ein Loch wenn sich ein User abmeldet. Dieses Loch muss mühsam wieder durch Verschiebungen im Array gefüllt werden.
Bei einer Liste gibt es dieses Problem nicht.

----
Die Adminanwendung sollte im Prinzip ein normaler Client sein, der aber Adminrechte hat.
Es ist effektiver, nur zwei Programme (Server und Client) als 3 Programme zu pflegen.

Deine Adminanwendung braucht ein Kommando (GET_ALL_ACTIVE_USERS), mit dem es alle User vom Server abrufen kann.
Wenn der Server erkennt, dass ein (oder mehrere) Client mit Adminrechten angemeldet sind, dann schickt er diesen eine USER_CHANGED Benachrichtigung. Und zwar immer dann, wenn sich ein User an- oder abmeldet.
Die Clientanwendung reagiert darauf, in dem sie alle Benutzer erneut vom Server abruft.
Andreas
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#3

Re: Chat Konzept mit Adminanwendung. Wie die Clients verwalt

  Alt 28. Apr 2008, 11:30
so habe ich es mir auch gedacht, das der Server bei jeder Änderung (Online/Offline) sich die Liste vom Server erneut abruft.

Wenn jetzt aber bei ca. 200 Mitarbeiter sich jeder anmeldet / abmeldet ist der Server ja nur noch beschäftigt sich die Userliste zu ziehen!?

Eine Möglichkeit wäre es noch wenn sich ein Client anmeldet wird dieser in der Userliste auf dem Server abgelegt. Der Server sendet dem Admin "Neuer Client". Der Admin legt auch eine Liste mit Clients an und löscht oder fügt die Clients hinzu.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Chat Konzept mit Adminanwendung. Wie die Clients verwalt

  Alt 28. Apr 2008, 12:40
Das könnte man umgehen, indem man nicht mit absuluten Werten arbeitet, sondern relativ:
D.h., wenn sich Benutzer "<Benutzername hier einsetzten>" abmeldet, dann wird der Benutzername an den Client geschickt, welcher dann den aus der Liste löscht.

Dabei besteht dann aber die Gefahr von Inkonsensitenz.
Verzögern könnte man das, indem man mitschickt, wie viele Benutzer angemeldet sind.
Weicht die Zahl ab (d.h. beim Adminprogramm fehlt einer oder ist noch einer drinnen), dann die Namen neuladen.

Wenn du sowieso dabei bist, könntest du auch bei jedem Benutzer speichern, seit wann gesichert ist, dass der Benutzer dabei ist.
Und wenn die Zeit z.b. eine Minute vorbei ist, fragst du den Server ob Benutzer "x" online ist, welcher dann zurückschickt, "ja" oder "nein". Wenn nein, dann die ganze Liste neuladen. (Sicherheitshalber)
Auch könntest du wieder eine "Quersumme" mitschicken (also die Anzahl der Benutzer).

Das Problem ist nur, dass der Nutzen nachher nicht mehr so viel bringt.
Wenn du möchtest könntest du auch zusätzlich einen Befehl einbauen, welcher den Server auffordert die Liste nocheinmal zu senden.

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#5

Re: Chat Konzept mit Adminanwendung. Wie die Clients verwalt

  Alt 28. Apr 2008, 12:56
das hört sich nicht schlecht an. Nur dann muss auf dem Server und in der Admin Anwendung eine Liste mit allen Clients geführt werden. Aber naja komme ich wohl nicht drum rum.....
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Chat Konzept mit Adminanwendung. Wie die Clients verwalt

  Alt 28. Apr 2008, 14:45
Naja So viel ist das nicht
Sagen wir, wir haben 200 Namen mit jeweils 20 Zeichen. Heißt 40 KILOByte Ram zusätzlich.
Durch die Liste etc. wird das mehr, aber es hält sich in Grenzen

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#7

Re: Chat Konzept mit Adminanwendung. Wie die Clients verwalt

  Alt 28. Apr 2008, 15:19
Dann werde ich es so machen das ich Server und in der Adminanwendung die Clients in einer Liste verwalte.....
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz