HTMX Engine Server

TsgcHTMX_Engine_Server — processa requisições htmx de troca parcial de página via HTTP e transmite fragmentos out-of-band ao vivo para todos os navegadores conectados via server-sent events, ou via WebSocket com o sgcWebSockets Professional, Enterprise ou All-Access.

TsgcHTMX_Engine_Server

Integra as atualizações parciais orientadas a HTTP do htmx com o envio server-push, via server-sent events ou, com o sgcWebSockets Professional, Enterprise ou All-Access, via WebSocket. As requisições htmx recebidas são despachadas para OnHTMXMessage; seu manipulador retorna apenas o fragmento a ser substituído. Chame BroadcastFragment a qualquer momento para enviar atualizações out-of-band ao vivo para todos os navegadores conectados.

Classe do componente

TsgcHTMX_Engine_Server

Função

Trocas htmx + envio ao vivo pelo servidor

Linguagens

Delphi, C++ Builder, .NET

Processe requisições htmx e envie fragmentos ao vivo

Conecte o motor ao seu servidor, processe as requisições de troca parcial em OnHTMXMessage e chame BroadcastFragment para enviar atualizações a todos os navegadores conectados.

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

Propriedades e métodos principais

Os membros usados com mais frequência.

Server

O TsgcHTTPServer ao qual este motor se conecta, que processa as requisições HTTP de troca parcial. Com o sgcWebSockets Professional, Enterprise ou All-Access, atribua um TsgcWebSocketHTTPServer para adicionar o envio via WebSocket.

OnHTMXMessage

Evento disparado para cada requisição HTTP acionada pelo htmx; seu manipulador retorna apenas o HTML do fragmento a ser substituído.

BroadcastFragment

Envia um payload htmx out-of-band para todos os clientes WebSocket conectados simultaneamente.

HandleRequest

Chamado pelo servidor hospedeiro para cada requisição; identifica os cabeçalhos htmx e encaminha para OnHTMXMessage ou repassa adiante.

hx-swap-oob

Atributo de troca out-of-band do htmx: o id do fragmento deve corresponder ao id do elemento alvo na página.

Segurança de thread

BroadcastFragment é thread-safe; chame-o a partir de timers em segundo plano, threads de envio ou manipuladores de eventos sem necessidade de bloqueio.

Auth

Atribua um TsgcHTMLAuth a Auth e o engine aplica a sessão, a verificação CSRF e as regras de login e de papel das rotas a cada requisição. MessageSession devolve a sessão de uma conexão WebSocket.

SSE

SSE.Enabled serve o fluxo de eventos, e um Template.Transport igual a htSSE ou htAuto permite que uma página receba os seus fragmentos por server-sent events. PushFragment e BroadcastFragment continuam os mesmos.

DispatchDirect

Executa uma requisição pelo roteador e pelo engine sem um socket, que é como os testes das suas páginas os chamam.

Continue explorando

Experimente onlineVeja na demo Eventos do servidor, rodando ao vivo no servidor de demos da eSeGeCe.
Ajuda onlineReferência completa da API e guia de uso para este componente.
Todos os componentes sgcHTMLNavegue pela matriz completa de 80+ componentes.
Baixar versão de avaliação gratuitaA versão de avaliação de 30 dias inclui os projetos de demonstração 60.HTML.
PreçosLicenças Single, Team e Site com código-fonte completo.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Pronto para começar?

Baixe a versão de avaliação gratuita e comece a criar interfaces web em Delphi, C++ Builder e .NET.