官方套件 · 框架
即時換上 HTML 的 htmx 擴充
你的伺服器渲染 HTML 片段並發佈出去,每個開著的頁面就用 hx-ext="hibira" 換上。不用自架 WebSocket 伺服器、Channels 或 Redis,任何後端都能用。
- hibira-swap 會依照 hx-swap、hx-target 與 out-of-band 規則換上發佈的 HTML;hx-trigger="hibira:事件" 則改由元素自己發出請求。
- 支援 htmx 2 與 htmx 4,可搭配 Laravel、Django、Flask、FastAPI、Rails、Go、Node,或任何有 Pusher 伺服器函式庫的後端。
- 私人頻道會用 hx-headers 裡現有的 CSRF 標頭授權;頁面已有 Laravel Echo 時沿用同一條連線。

登入後,範例程式碼會自動帶入您的叢集主機。 登入
安裝
<script src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.11/dist/htmx.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/pusher-js@8.6.0/dist/web/pusher.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@hibira-io/htmx@0.1/dist/hibira.min.js"></script>設定
<body hx-ext="hibira" hibira-connect="YOUR_APP_KEY" hibira-options='{"wsHost":"ws.hibira.io"}' hibira-auth-endpoint="/broadcasting/auth" hx-headers='{"X-CSRF-TOKEN": "..."}'> <!-- the HTML your server publishes is swapped in --> <ul hibira-channel="orders" hibira-swap="order-created" hx-swap="afterbegin">…</ul> <!-- or the event makes the element fetch fresh HTML from you --> <div hibira-channel="private-cart.42" hx-get="/cart" hx-trigger="load, hibira:cart-changed"></div> </body>使用
import pusher hibira = pusher.Pusher( app_id="YOUR_APP_ID", key="YOUR_APP_KEY", secret="YOUR_APP_SECRET", host="ws.hibira.io", ssl=True, ) # after saving the order: every open page gets the new row hibira.trigger("orders", "order-created", render_to_string("orders/_row.html", {"order": order}))
開始之前
- 應用程式的密鑰只會在建立應用程式或輪替密鑰時顯示一次。請只放在伺服器上,不要放進瀏覽器或遊戲的建置檔。
- Free 方案需要把頁面載入的每個來源都加進應用程式的「允許的來源」(開發時是 http://localhost:3000,之後是您的網域)。"*" 需要付費方案。
- Free 方案每個事件最多 4 KB。較大或因使用者而異的 HTML,請發佈一個小事件,讓 hx-trigger 向你的伺服器取得 HTML。
請使用儀表板中的應用程式 Key;Secret 只放在你的伺服器上。頻道、事件與授權端點的用法和 Pusher 完全相同。 免費建立帳號 →