Announcement

Collapse
No announcement yet.

Events vom Server nur an bestimmte Clients senden ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Events vom Server nur an bestimmte Clients senden ?

    Hallo,

    Ist schon mehr Mals besprochen
    wie COM-Servers
    sendet Events an ALLE Clients.


    Frage

    1. wie Kann Server zwischen" Klienten" unterscheiden.
    wenn überhaupt.

    2. Wenn ja dann wie kann er NUR an bestimmte Clients
    Events schicken


    Danke

    Enum := GetEnumerator;
    if enum <> nil then begin
    while Enum.Next(1, ConnectData, @Fetched) = S_OK do begin
    if ConnectData.pUnk <> nil then begin
    (ConnectData.pUnk as IEventComServerEvents).OnEntityClicked(CADID);
    end;
    end;
    end;

  • #2
    OK, Frage mal anders formuliert ,

    wie erkennt Server welches Client hat gerade "angerufen"

    Um dann logischerweise nicht an alle Cliente Callback zu senden.

    Grus

    Comment


    • #3
      Hallo,

      wenn man selbst die Kontrolle über den Rückruf behalten möchte, muss ein eigener <i>Callback-Manager</i> implementiert werden. In meinen COM-Büchern geht das Kapitel "Callback vs. Connection Point" näher darauf ein (im COM+-Buch ist dieses Kapitel nur auf der CDROM zum Buch zu finden)

      Comment


      • #4
        Hallo,

        Danke für Feedback

        >>muss ein eigener Callback->>Manager implementiert werden
        Sicher kann man .
        Unklar ob callback Mechanismus
        kann dabei beibehalten werden.

        Ganze Web ist voll von diesem code
        if enum <> nil then begin
        while Enum.Next(1, ConnectData, @Fetched) = S_OK do begin
        if ConnectData.pUnk <> nil then begin

        Jaherlang werden 10 Zeilen diskutiert.

        Scheinbar hat niemand besseres erfunden ?

        Gruss
        PS:
        Beide Bücher habe ich schon.
        Von Eric Harmon auc

        Comment


        • #5
          Hallo,

          die ConnectionPoint-Schnittstelle war primär für die über die späte Bindung zugreifenden Clients gedacht, bei denen die Einfachheit des Hantierens im Mittelpunkt steht.

          &gt;..Scheinbar hat niemand besseres erfunden?

          Mit COM+ und den <i>transienten Subscriptions</i> steht bereits seit Einführung von Windows 2000 ein Mechanismus zur Verfügung, der den höheren Anforderungen genügt. Während die ConnectionPoints nach dem <b>TCE</b>-Prinzip (tighly-coupled events) arbeiten, basieren die COM+ Events auf dem <b>LCE</b>-Prinzip (loosely-coupled events). Zwischen dem Absender und dem Empfänger einer Benachrichtigung besteht keine direkte Verbindung mehr, statt dessen verwaltet Windows zur Laufzeit ein Verzeichnis der "Abonnenten" eines bestimmten COM+ Events, die dann direkt von COM+ vom Ereignis informiert werden. Über das <i>ICOMAdminCatalog</i>-Interface haben wir einen direkten Zugriff auf das "Abonnenten-Verzeichnis". In meinem COM+-Buch gehe ich auf den Seiten 758 bis 779 darauf ein

          Comment

          Working...
          X