Presence Component — sgcHTML | eSeGeCe

Presence

TsgcHTMLComponent_Presence — eine „Wer ist online"-Liste, dargestellt als überlappender Avatar-Stapel oder als Liste, mit Statuspunkten und Live-WebSocket-Updates, in Delphi, C++ Builder und .NET.

TsgcHTMLComponent_Presence

Fügen Sie Benutzer mit AddUser hinzu, begrenzen Sie mit MaxVisible, wie viele angezeigt werden, und lesen Sie dann die HTML-Eigenschaft — oder übertragen Sie eine Statusänderung an offene Clients mit GetUserFragmentHTML.

Komponentenklasse

TsgcHTMLComponent_Presence

Rendert

Avatar-Stapel oder Liste, plus scoped CSS

Familie

Chat & KI

Sprachen

Delphi, C++ Builder, .NET

Benutzer hinzufügen, rendern, Statusänderungen übertragen

Rufen Sie AddUser für jede Person auf, lesen Sie HTML für das erste Rendering und rufen Sie dann SetUserStatus auf und übertragen Sie GetUserFragmentHTML, wenn sich der Status von jemandem ändert.

uses
  sgcHTML_Component_Presence;

var
  oPresence: TsgcHTMLComponent_Presence;
begin
  oPresence := TsgcHTMLComponent_Presence.Create(nil);
  try
    oPresence.PresenceID := 'roster';
    oPresence.Layout := plAvatars;
    oPresence.MaxVisible := 5;
    oPresence.Title := 'Online';

    oPresence.AddUser('u1', 'Ana Torres', psOnline);
    oPresence.AddUser('u2', 'Marc Bell', psAway, '', 'Back at 3pm');
    oPresence.AddUser('u3', 'Kenji Ito', psBusy);

    WebModule.Response := oPresence.HTML;   // avatar stack + scoped CSS
  finally
    oPresence.Free;
  end;
end;

// Push a status change to every connected client, no full re-render:
oPresence.SetUserStatus('u2', psOnline);
TsgcHTMX_Engine_Server.BroadcastFragment(oPresence.GetUserFragmentHTML('u2'));
// includes: sgcHTML_Component_Presence.hpp

TsgcHTMLComponent_Presence *oPresence = new TsgcHTMLComponent_Presence(NULL);
try
{
  oPresence->PresenceID = "roster";
  oPresence->Layout = plAvatars;
  oPresence->MaxVisible = 5;
  oPresence->Title = "Online";

  oPresence->AddUser("u1", "Ana Torres", psOnline);
  oPresence->AddUser("u2", "Marc Bell", psAway, "", "Back at 3pm");
  oPresence->AddUser("u3", "Kenji Ito", psBusy);

  String html = oPresence->HTML;   // avatar stack + scoped CSS

  // Push a status change to every connected client:
  oPresence->SetUserStatus("u2", psOnline);
  TsgcHTMX_Engine_Server::BroadcastFragment(oPresence->GetUserFragmentHTML("u2"));
}
__finally
{
  delete oPresence;
}
using esegece.sgcWebSockets;

var presence = new TsgcHTMLComponent_Presence();
presence.PresenceID = "roster";
presence.Layout = TsgcHTMLPresenceLayout.plAvatars;
presence.MaxVisible = 5;
presence.Title = "Online";

presence.AddUser("u1", "Ana Torres", TsgcHTMLPresenceStatus.psOnline);
presence.AddUser("u2", "Marc Bell", TsgcHTMLPresenceStatus.psAway, "", "Back at 3pm");
presence.AddUser("u3", "Kenji Ito", TsgcHTMLPresenceStatus.psBusy);

string html = presence.HTML;   // avatar stack + scoped CSS

// Push a status change to every connected client, no full re-render:
presence.SetUserStatus("u2", TsgcHTMLPresenceStatus.psOnline);
TsgcHTMX_Engine_Server.BroadcastFragment(presence.GetUserFragmentHTML("u2"));

Wichtige Eigenschaften & Methoden

Die Member, die Sie am häufigsten verwenden.

Benutzer hinzufügen

AddUser(aId, aDisplayName, aStatus, aAvatarURL, aStatusText) fügt einen Listeneintrag hinzu oder aktualisiert ihn: eine bestehende Id wird an Ort und Stelle aktualisiert.

Status

TsgcHTMLPresenceStatuspsOnline, psAway, psBusy, psOffline. SetUserStatus(aId, aStatus, aStatusText) aktualisiert nur den Statuspunkt und den Text.

Layout

Layout wählt plAvatars (überlappender Avatar-Stapel) oder plList (Zeilen mit Name + Status); AvatarSize setzt den Avatar-Durchmesser in Pixeln.

Überlaufbegrenzung

MaxVisible (Standard 5) begrenzt, wie viele Benutzer angezeigt werden, bevor ein „+N"-Chip erscheint; jeder Benutzer bleibt im Markup, sodass eine spätere Übertragung ihn weiterhin findet.

Kopfzeile

Title und ShowCount rendern eine Kopfzeile mit einem Online-Zähler-Abzeichen; GetOnlineCount schließt psOffline-Benutzer aus.

Streaming-Updates

GetUserFragmentHTML(aId) (gibt auch ein Löschen aus, sobald RemoveUser aufgerufen wird), GetCountFragmentHTML und GetMoreFragmentHTML speisen TsgcHTMX_Engine_Server.PushFragment / BroadcastFragment.

Weiter entdecken

Online-HilfeVollständige API-Referenz und Verwendungshandbuch für diese Komponente.
Alle sgcHTML-KomponentenDurchsuchen Sie die vollständige Funktionsmatrix von über 80 Komponenten.
Kostenlose Testversion herunterladenDie 30-Tage-Testversion enthält die 60.HTML-Demoprojekte.
PreiseSingle-, Team- und Site-Lizenzen mit vollständigem Quellcode.

Bereit loszulegen?

Laden Sie die kostenlose Testversion herunter und fügen Sie Ihrer Delphi-, C++-Builder- oder .NET-Webanwendung eine Live-Präsenzliste hinzu.