WebTransport (HTTP/3)

Modern browsers can ride the platform's signaling layer over HTTP/3 (QUIC). Multi-stream and lower head-of-line blocking than WebSocket, particularly useful on flaky cellular networks. Available since SDK 0.20.0; WebSocket on /ws remains the default, this lane is purely opt-in.

Wire

  • https://sdk.droponair.com/v1/transport/wt?token=<jwt> — WebTransport session endpoint on UDP 443. Single bidirectional stream carries raw protobuf frames both ways, same Envelope wire as the other lanes. JWT in the query parameter (the standard pattern; the WebTransport API has no separate auth header).
  • Terminated by a small Go sidecar (droponair-webtransport) that bridges each WT session to the internal WebSocket handler. The application semantics are identical; only the transport differs.

SDK usage (JavaScript)


import { WebTransportTransport } from '@droponair/sdk-js';

const wt = new WebTransportTransport({
  httpUrl: 'https://sdk.droponair.com',
  getJwt: async () => jwt,
});
wt.onFrame((bytes) => { /* protobuf decode */ });
await wt.connect();
await wt.sendEnvelope(envelopeBytes);

Browser support

  • Chromium 97+ (stable since 2022)
  • Firefox 125+ (stable since 2024)
  • Safari Technology Preview only (no stable release as of 2026)
  • Node 22+ behind experimental flags

On iOS, URLSession already negotiates HTTP/3 transparently for every REST + SSE call because the platform advertises HTTP/3 via the Alt-Svc response header. On Android, OkHttp does not speak HTTP/3 today, customer apps that need it can layer Cronet at the application level. A native bidirectional WebTransport primitive (raw QUIC streams against /v1/transport/wt) is on the roadmap for both platforms if a customer specifically asks. For corporate-firewall traversal today, use the SSE lane.

Verify the lane is live via GET /api/info.transports (must include "webtransport") and features (must include "transport_webtransport"). The platform brings the HTTP/3 terminator up or down independently; the advertised lane reflects whether the upgrade is currently available on this deployment.