GitHub

SSE Stream

Declarative wrapper for the htmx SSE extension. Streams real-time content from the server via Server-Sent Events.

<rhx-sse-stream>

Examples

Server Clock

Streams the current server time every second for 10 seconds.

Close on Event

Streams a countdown, then closes the connection when a "done" event is received.

Waiting for countdown...

Server-Side Helpers

Use the companion HtmxSseExtensions methods to format responses:

// In your PageModel or Controller:
public async Task OnGetStream()
{
    Response.PrepareSseResponse();

    await foreach (var item in GetItemsAsync())
    {
        await Response.WriteSseEventAsync(item, "message");
    }
}

// Or stream an IAsyncEnumerable directly:
public async Task OnGetStream()
{
    await Response.WriteSseStreamAsync(GetItemsAsync(), "message");
}