Skip to content

Help

Networks and work Wi-Fi

Make a room faster on Wi-Fi, and get devices connected on work, school or hotel networks that block direct connections.

Every token passes through each device that holds layers, and back. So the network sets a room’s speed, and a network that blocks direct connections can keep a device out.

  • Put the devices on the same Wi-Fi, near the router, or wired. A room over the internet works, but every hop adds its delay to every token.
  • Use fewer devices. The default For speed split already leaves out devices the model doesn’t need.
  • Keep every device that holds layers in front, screen on, plugged in. A background tab or a sleeping screen stalls the whole room.

Pooled already works around bad links: it waits for late data instead of dropping it, sends small messages twice, and keeps phone Wi-Fi awake during an answer. Measurements are in Benchmarks.

Devices link directly, over UDP. Many work networks block UDP and every port except 443, so there is no direct path.

On pooled.run this is handled for you. Every room gets a TURN relay, which both devices reach over TLS on port 443, like ordinary web traffic. The relay forwards between them.

  • Links still go direct whenever they can. The relay is only the fallback.
  • Model weights never go through the relay. A relayed device downloads its layers from Hugging Face.
  • A relayed room is slower than a direct one, because every token takes an extra hop.

To check, look for goes through the relay in the room log, or run pooledNet() in the browser console.

A join that found the room but can’t connect says why:

You see What to do
“…could not connect, not even through the relay (TURN) server. This network may block it too…” The network blocks the relay as well. Try a phone hotspot.
“…could not connect, not even through the relay (TURN) server. Check its address and password under Network…” Your own relay didn’t work. Check its address and password.
“…this network blocks direct (UDP) connections and there is no relay (TURN) server…” No relay is set, for example on a self-hosted site. Add one (below), or try a hotspot.
“…these two devices can’t reach each other (a strict firewall or mobile network on one side)…” Same Wi-Fi, another network, or a relay (below).

A relay can’t help when the network blocks TLS to the relay, or only allows traffic through a proxy that needs a login. Use a phone hotspot then.

You rarely need this on pooled.run. Set your own relay when the site’s is blocked too, or on a self-hosted site. It replaces the site’s. Use coturn or a provider’s; see TURN relay.

Under the join form, open Network. Fill in the relay URL (turn:relay.example.org:3478, or turns: for TLS), the username and the password. It is saved in this browser only.

Tick Always go through the relay so the other devices never see this device’s IP address.

Join links and QR codes never include relay settings, so the password stays out of chats. Each device that can’t connect directly needs the relay set itself.

A signaling server introduces devices. Once they’re connected, the room runs without it.

  • In a running room, you see “Lost the signaling server… Reconnecting…”. The devices already there keep working. New devices can join once it’s back.
  • On the join screen, you see “Can’t reach the signaling server…”. Try again in a minute, or another network. Some work filters block it.

To use your own server, with the public one as a fallback:

https://pooled.run/room?signal=signal.example.org,cloud

Every device must reach the host’s server. The invite link carries ?signal= for you. See Signaling servers.

Option Effect
?relay=1 Every link goes through the relay, the site’s included. Other devices never see this device’s IP address.
?relay=0 Never ask for the site’s relay.
?turnapi=1 On localhost, ask /api/turn anyway.
?ka=0 Turn off the Wi-Fi keep-alive during answers.

A self-hosted copy gets the site’s relay once its Vercel environment has a Cloudflare TURN key or a coturn secret. See TURN relay and Environment.