HTMX Engine Server
TsgcHTMX_Engine_Server — HTTP를 통해 htmx 부분 페이지 스왑 요청을 처리하고, WebSocket을 통해 연결된 모든 브라우저에 실시간 out-of-band 프래그먼트를 브로드캐스트합니다.
TsgcHTMX_Engine_Server — HTTP를 통해 htmx 부분 페이지 스왑 요청을 처리하고, WebSocket을 통해 연결된 모든 브라우저에 실시간 out-of-band 프래그먼트를 브로드캐스트합니다.
htmx의 HTTP 기반 부분 업데이트와 WebSocket 서버 푸시를 연결합니다. 수신되는 htmx 요청은 OnHTMXRequest로 디스패치되며, 핸들러는 스왑할 프래그먼트만 반환합니다. 언제든지 BroadcastFragment를 호출하여 연결된 모든 브라우저에 실시간 out-of-band 업데이트를 전송하세요.
엔진을 WebSocket 서버에 연결하고, OnHTMXRequest에서 부분 스왑 요청을 처리한 후, BroadcastFragment를 호출하여 연결된 모든 브라우저에 업데이트를 전송하세요.
uses
sgcHTMX_Engine_Server;
var
oHTMX: TsgcHTMX_Engine_Server;
begin
oHTMX := TsgcHTMX_Engine_Server.Create(nil);
oHTMX.Server := WSSServer;
oHTMX.OnHTMXRequest := 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 = WSSServer;
oHTMX->OnHTMXRequest = 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.OnHTMXRequest += HandleHTMXRequest;
// push a live update:
htmx.BroadcastFragment(
"<div id=\"kpi-revenue\" hx-swap-oob=\"true\">" +
revenue.ToString("N0") + "</div>");
가장 자주 사용하는 멤버.
이 엔진이 연결되는 TsgcWSHTTPServer로, HTTP 부분 스왑 요청과 WebSocket 푸시를 모두 처리합니다.
모든 htmx 트리거 HTTP 요청에 대해 발생하는 이벤트로, 핸들러는 스왑할 프래그먼트 HTML만 반환합니다.
현재 연결된 모든 WebSocket 클라이언트에 동시에 out-of-band htmx 페이로드를 전송합니다.
각 요청에 대해 호스트 서버가 호출하며, htmx 헤더를 식별하여 OnHTMXRequest로 라우팅하거나 통과시킵니다.
htmx의 out-of-band 스왑 속성으로, 프래그먼트 id는 페이지의 대상 요소 id와 일치해야 합니다.
BroadcastFragment는 스레드 안전하므로 백그라운드 타이머, 푸시 스레드 또는 이벤트 핸들러에서 잠금 없이 호출할 수 있습니다.