Komponent Presence — sgcHTML | eSeGeCe

Presence

TsgcHTMLComponent_Presence — lista "kto jest online", renderowana jako nakładający się stos awatarów lub lista, z kropkami statusu i aktualizacjami na żywo przez WebSocket, w Delphi, C++ Builder i .NET.

TsgcHTMLComponent_Presence

Dodawaj użytkowników za pomocą AddUser, ogranicz liczbę wyświetlanych za pomocą MaxVisible, a następnie odczytaj właściwość HTML — lub wyślij zmianę statusu do połączonych klientów za pomocą GetUserFragmentHTML.

Klasa komponentu

TsgcHTMLComponent_Presence

Renderuje

Stos awatarów lub lista, plus dedykowany CSS

Rodzina

Czat i AI

Języki

Delphi, C++ Builder, .NET

Dodaj użytkowników, wyrenderuj, przesyłaj zmiany statusu

Wywołaj AddUser dla każdej osoby, odczytaj HTML do początkowego renderowania, a następnie wywołaj SetUserStatus i wyślij GetUserFragmentHTML, gdy zmieni się czyjś status.

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"));

Kluczowe właściwości i metody

Składniki, po które sięgasz najczęściej.

Dodawanie użytkowników

AddUser(aId, aDisplayName, aStatus, aAvatarURL, aStatusText) dodaje lub aktualizuje wpis na liście: istniejące Id jest aktualizowane w miejscu.

Status

TsgcHTMLPresenceStatuspsOnline, psAway, psBusy, psOffline. SetUserStatus(aId, aStatus, aStatusText) aktualizuje tylko kropkę statusu i tekst.

Układ

Layout wybiera plAvatars (nakładający się stos awatarów) lub plList (wiersze z nazwą i statusem); AvatarSize ustawia średnicę awatara w pikselach.

Limit nadmiaru

MaxVisible (domyślnie 5) ogranicza liczbę wyświetlanych użytkowników, zanim pojawi się plakietka "+N"; każdy użytkownik pozostaje w znacznikach, dzięki czemu późniejsza aktualizacja nadal go znajdzie.

Nagłówek

Title i ShowCount renderują nagłówek z plakietką liczby osób online; GetOnlineCount pomija użytkowników psOffline.

Aktualizacje strumieniowe

GetUserFragmentHTML(aId) (emituje też usunięcie po wywołaniu RemoveUser), GetCountFragmentHTML i GetMoreFragmentHTML zasilają TsgcHTMX_Engine_Server.PushFragment / BroadcastFragment.

Poznawaj dalej

Pomoc onlinePełna dokumentacja API i przewodnik użytkowania tego komponentu.
Wszystkie komponenty sgcHTMLPrzejrzyj pełną matrycę funkcji 80+ komponentów.
Pobierz bezpłatną wersję próbną30-dniowa wersja próbna zawiera projekty demonstracyjne 60.HTML.
CennikLicencje Single, Team i Site z pełnym kodem źródłowym.

Gotowy, aby zacząć?

Pobierz bezpłatną wersję próbną i dodaj listę obecności na żywo do swojej aplikacji webowej w Delphi, C++ Builder lub .NET.