Skip to main content

Module client

Module client 

Source
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
ClientConfig
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§

PeerAddr
The address of a remote peer the client exchanges data with through the relay.
ReflexiveAddr
The client’s own address as seen by the server — its server-reflexive address.
RelayedAddr
The public address the TURN server allocated on this client’s behalf.