Skip to content

Web transports

Native audio

The simplest browser integration points an <audio> element at the mount:

<audio controls src="https://radio.example.com/radio"></audio>

Browser codec support depends on the configured profile. Kite does not transcode audio.

SSE

SSE carries metadata and source state without carrying audio bytes:

GET /_kite/v1/events?mount=/radio

Events include source and metadata types. Last-Event-ID enables replay from the recent event history.

WebSocket

WebSocket sends a JSON hello message, binary media frames/pages, and JSON metadata/source events. Binary payloads are raw bytes for the configured mount profile, not a browser-transcoded format.

The TypeScript SDK in sdk/ provides KitePlayer and connectKiteSocket() helpers.

HTTP/3

When server.http3_address is configured alongside HTTPS, Kite advertises HTTP/3 with Alt-Svc and serves QUIC over UDP. Keep TCP and UDP open on the public HTTPS port; TCP remains the fallback for clients without HTTP/3.