HTMX Engine Server

TsgcHTMX_Engine_Server — gère les requêtes de mise à jour partielle htmx via HTTP et diffuse en direct des fragments out-of-band à tous les navigateurs connectés via server-sent events, ou via WebSocket avec sgcWebSockets Professional, Enterprise ou All-Access.

TsgcHTMX_Engine_Server

Relie les mises à jour partielles pilotées par HTTP de htmx au server-push, via server-sent events ou, avec sgcWebSockets Professional, Enterprise ou All-Access, via WebSocket. Les requêtes htmx entrantes sont envoyées à OnHTMXMessage ; votre gestionnaire retourne uniquement le fragment à insérer. Appelez BroadcastFragment à tout moment pour pousser des mises à jour out-of-band en direct vers tous les navigateurs connectés.

Classe du composant

TsgcHTMX_Engine_Server

Rôle

Échanges htmx et server push en direct

Langages

Delphi, C++ Builder, .NET

Gérer les requêtes htmx et pousser des fragments en direct

Reliez le moteur à votre serveur, gérez les requêtes de mise à jour partielle dans OnHTMXMessage et appelez BroadcastFragment pour pousser des mises à jour vers tous les navigateurs connectés.

uses
  sgcHTMX_Engine_Server;

var
  oHTMX: TsgcHTMX_Engine_Server;
begin
  oHTMX := TsgcHTMX_Engine_Server.Create(nil);
  oHTMX.Server         := HTTPServer;
  oHTMX.SSE.Enabled    := True;  // live push over server-sent events
  oHTMX.OnHTMXMessage  := HandleHTMXRequest;

  // later, from any thread, push a KPI update:
  oHTMX.BroadcastFragment(
    '<div id="kpi-revenue" hx-swap-oob="true">' +
    CurrToStr(FRevenue) + '</div>');
end;
TsgcHTMX_Engine_Server *oHTMX = new TsgcHTMX_Engine_Server(NULL);
oHTMX->Server        = HTTPServer;
oHTMX->SSE->Enabled  = true;  // live push over server-sent events
oHTMX->OnHTMXMessage = HandleHTMXRequest;

// push a live update:
oHTMX->BroadcastFragment(
  "<div id=\"kpi-revenue\" hx-swap-oob=\"true\">" +
  CurrToStr(FRevenue) + "</div>");
var htmx = new TsgcHTMX_Engine_Server();
htmx.Server        = wssServer;
htmx.OnHTMXMessage += HandleHTMXRequest;

// push a live update:
htmx.BroadcastFragment(
    "<div id=\"kpi-revenue\" hx-swap-oob=\"true\">" +
    revenue.ToString("N0") + "</div>");

Propriétés et méthodes clés

Les membres les plus fréquemment utilisés.

Server

Le TsgcHTTPServer auquel ce moteur s'attache, qui gère les requêtes HTTP de mise à jour partielle. Avec sgcWebSockets Professional, Enterprise ou All-Access, assignez un TsgcWebSocketHTTPServer pour ajouter le push WebSocket.

OnHTMXMessage

Événement déclenché pour chaque requête HTTP initiée par htmx ; votre gestionnaire retourne uniquement le fragment HTML à insérer.

BroadcastFragment

Envoie un payload htmx out-of-band à tous les clients WebSocket actuellement connectés simultanément.

HandleRequest

Appelé par le serveur hôte pour chaque requête ; identifie les en-têtes htmx et achemine vers OnHTMXMessage ou laisse passer.

hx-swap-oob

Attribut d'échange out-of-band de htmx : l'id du fragment doit correspondre à l'id de l'élément cible sur la page.

Sécurité des threads

BroadcastFragment est thread-safe ; appelez-le depuis des minuteries en arrière-plan, des threads de push ou des gestionnaires d'événements sans verrouillage.

Auth

Affectez un TsgcHTMLAuth à Auth et le moteur applique la session, la vérification CSRF et les règles de connexion et de rôle des routes à chaque requête. MessageSession renvoie la session d'une connexion WebSocket.

SSE

SSE.Enabled sert le flux d'événements, et un Template.Transport valant htSSE ou htAuto permet à une page de recevoir ses fragments via des événements envoyés par le serveur. PushFragment et BroadcastFragment restent identiques.

DispatchDirect

Exécute une requête à travers le routeur et le moteur sans socket, c'est ainsi que les tests de vos pages les appellent.

Continuer à explorer

Essayer en ligneVoyez-le dans la démo Événements serveur, en fonctionnement direct sur le serveur de démos d'eSeGeCe.
Aide en ligneRéférence API complète et guide d'utilisation pour ce composant.
Tous les composants sgcHTMLParcourez la matrice complète de 80+ composants.
Télécharger l'essai gratuitL'essai de 30 jours inclut les projets de démonstration 60.HTML.
TarifsLicences Single, Team et Site avec code source complet.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Prêt à commencer ?

Téléchargez l'essai gratuit et commencez à créer des interfaces web en Delphi, C++ Builder et .NET.