WebTransport vs WebSocket (and WebRTC data channels): a sourced comparison
WebTransport vs WebSocket compared on transport, head-of-line blocking, unreliable delivery and support, with notes on WebRTC data channels.
Updated
WebTransport · HTTP/3 · QUIC
Enter any WebTransport URL to connect from your browser, send a message on a stream or as a datagram, and see the reply. The public echo server that used to run on this domain is no longer running here, so use the buttons to fill in a documented public server instead.
Tool updated · Facts checked
✕ Your browser doesn't support WebTransport
This browser does not expose the WebTransport API, or the page is not in a secure context (HTTPS). Try a
current version of Chrome, Edge, Firefox or Safari. See what is WebTransport.
Detected by checking which properties exist, not by guessing from the browser name. "Present" means the browser exposes it, not that it works with every server.
| Feature | Result | Check used |
|---|
Opens one throwaway attempt to a loopback address (127.0.0.1) and closes it, to see which options the browser reads. Nothing leaves your machine.
Measured from this browser to this server. One sample is one sample, not a benchmark.
✕ Common causes of a failed connection
Browsers reveal little about handshake failures, so these are possibilities, not a diagnosis.
Details: debugging WebTransport handshake errors, or the server-readiness checklist.
More about the tester: WebTransport tester page. History and alternatives: public echo servers.
The idea
If the same bytes come back, every hop in the path worked: DNS, UDP, QUIC, HTTP/3, the certificate and the origin check. That is why an echo server is the first thing to point a new client at.
The API in 15 lines
From a browser, you open a WebTransport session, then send bytes
on a stream or as a datagram. An echo server returns them, which proves the whole path works: DNS, UDP, QUIC,
HTTP/3, certificate and origin checks.
New to the protocol? Start with what WebTransport is.
// Example: echo one message over a bidirectional stream.
const transport = new WebTransport('https://example.com:4433/echo');
await transport.ready;
const stream = await transport.createBidirectionalStream();
const writer = stream.writable.getWriter();
await writer.write(new TextEncoder().encode('hello'));
await writer.close();
const reader = stream.readable.getReader();
const decoder = new TextDecoder();
for (;;) {
const { value, done } = await reader.read();
if (done) break;
console.log('echo:', decoder.decode(value, { stream: true }));
}
transport.close(); // Example: one datagram. Datagrams are unreliable: no retransmission,
// so a reply may never arrive.
const transport = new WebTransport('https://example.com:4433/echo');
await transport.ready;
const dg = transport.datagrams;
const writer = (dg.createWritable?.() ?? dg.writable).getWriter();
await writer.write(new TextEncoder().encode('ping'));
const reader = dg.readable.getReader();
const { value } = await reader.read();
console.log('echo:', new TextDecoder().decode(value)); Start here
An echo server accepts a WebTransport session and returns the bytes you send on streams and datagrams. It lets you confirm that a client library, a browser, or a network path works before you build on it. The old public one is gone, so these are the replacements.
Connect from your browser to any WebTransport URL, send a stream or datagram message, and see the reply and errors. Nothing passes through this site.
How echo servers work, the history of the one that lived here, and a checked list of other public and open-source servers.
What WebTransport is, how it compares with WebSocket, client libraries, local testing, and fixing handshake errors.
Running WebTransport on edge or serverless platforms? See WebTransport and serverless.
History
It was a free, community-run public echo server, announced in July 2022 on the Chromium web-transport-dev group. Developers pointed WebTransport clients at it to check that a browser, library or network worked without running a server of their own. Chrome's WebTransport documentation and a few project READMEs linked to it.
By mid-2025, users on the same group reported that it no longer resolved. We could not confirm the exact shutdown date. The full story, with sources, is on the echo server page.
Guides
WebTransport vs WebSocket compared on transport, head-of-line blocking, unreliable delivery and support, with notes on WebRTC data channels.
Updated
Why a WebTransport connection fails and what to check: certificates, serverCertificateHashes, HTTP/3 support, UDP, origin and path, per the spec.
Updated
Run a local WebTransport server from the wtransport or webtransport-go examples, then connect from the browser, with a self-signed certificate hash.
Updated
What else is here
WebTransport Day is an independent resource for web developers building realtime apps: WebTransport and the web platform, plus hands-on coverage of the AI coding tools developers use to build them.
No. The public WebTransport echo server that used to be served from this domain is no longer running here. This site is now an independent developer resource and is not affiliated with the original service.
Use the browser tester on this site to test any WebTransport server you can reach, and see the echo server page for other public test servers and open-source servers you can run yourself.
We found no provider documentation describing a serverless function layer that can act as a WebTransport server. The serverless and edge page lists what each provider documents and the date it was checked.
No, but a server that returns what you send is the quickest way to confirm a client works. You can run one locally with a library such as the examples in the local testing guide.
Free, client-side, no account. Your messages go straight from your browser to the server you choose.