Expand description
The Sans-I/O TURN client: allocate a relayed address and send through it. The Sans-I/O TURN client.
Using a relay takes three steps: Allocate to obtain a public address, CreatePermission for
each peer you intend to exchange data with, and then Send/Data indications (or a bound channel)
to move bytes. Each step is a STUN transaction, so every Event carries the
transaction id of the request it answers.
The three address kinds are easy to confuse: RelayedAddr is what peers send to,
ReflexiveAddr is how the server sees this client, and PeerAddr is the far end.
Modules§
- binding
- Channel bindings, which replace the 36-byte Data indication header with a 4-byte one.
- permission
- Per-peer send permissions, which a relay requires before it will forward to an address.
- relay
- A live allocation on the server, and sending or receiving through it.
- transaction
- Outstanding request tracking, with the RFC’s retransmission schedule.
Structs§
- Client
- Client is a STUN client
- Client
Config - ClientConfig is a bag of config parameters for Client.
Enums§
- Event
- What the client produces in response to inbound datagrams and elapsed time.
Type Aliases§
- Peer
Addr - The address of a remote peer the client exchanges data with through the relay.
- Reflexive
Addr - The client’s own address as seen by the server — its server-reflexive address.
- Relayed
Addr - The public address the TURN server allocated on this client’s behalf.