事件 - htmx:sseError

htmx:sseError 是 HTMX 中用于处理 服务器发送事件(SSE)出错 的一个事件。它在使用 HTMX 的 sse 扩展接收事件流时,如果连接发生错误(如网络中断、服务器断开连接等),会触发该事件。

你可以用它来:

  • 显示“连接断开”提示

  • 自动重连或触发备用逻辑

  • 上报错误日志

事件参数

  • detail.elt - 具有不良 SSE 源的元素
  • detail.error - 错误消息
  • detail.source - SSE 源

HTMX 支持通过扩展 _hyperscript + htmx-ext-sse.js 来处理 服务端推送事件。HTML 中的使用方式是:

<div sse-connect="/events" sse-swap="message">
  <!-- 监听名为 "message" 的事件 -->
</div>

示例代码

<h2>消息流</h2>
<div 
  sse-connect="/events" 
  sse-swap="message" 
  id="eventBox"
  style="border:1px solid #ccc; padding:10px;">
  正在连接消息云服务器...
</div>

<script>
  document.body.addEventListener("htmx:sseError", function(evt) {
    console.error("SSE 连接发生错误");
    document.getElementById("eventBox").innerHTML = `
      <p style="color:red;">连接错误,请检查网络或稍后再试。</p>
    `;
  });
</script>

以上代码在页面加载后,HTMX 使用 /events 创建一个 EventSource 连接。服务端不断通过 SSE 向客户端推送 event: message。如果连接断开、服务器不可达,或者响应格式错误则触发 htmx:sseError。