HTMX Engine Server
TsgcHTMX_Engine_Server — 处理通过 HTTP 传入的 htmx 局部页面交换请求,并通过 WebSocket 向所有已连接的浏览器广播实时带外片段。
TsgcHTMX_Engine_Server — 处理通过 HTTP 传入的 htmx 局部页面交换请求,并通过 WebSocket 向所有已连接的浏览器广播实时带外片段。
将 htmx 的 HTTP 驱动局部更新与 WebSocket 服务器推送相桥接。传入的 htmx 请求被分发到 OnHTMXRequest;您的处理程序只需返回要交换的片段。随时调用 BroadcastFragment 即可向每个已连接的浏览器推送实时带外更新。
将引擎连接到您的 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 客户端发送带外 htmx 载荷。
由宿主服务器为每个请求调用;识别 htmx 头并路由到 OnHTMXRequest 或透传处理。
htmx 的带外交换属性:片段 id 必须与页面上目标元素的 id 匹配。
BroadcastFragment 是线程安全的;可从后台定时器、推送线程或事件处理程序中调用,无需加锁。