# `ExWapp.Transport`
[🔗](https://github.com/elchemista/ex_wapp/blob/v0.1.5/lib/ex_wapp/transport.ex#L1)

Behaviour for wire-level WhatsApp protocol transports.

A protocol transport owns socket lifecycle and raw node/frame exchange below
the session engine. It must not build high-level message types or bypass
Signal/fanout. `ExWapp.Conn` is the production implementation.

Do not confuse this layer with `ExWapp.Client.Transport`, whose historical
name describes a high-level client runtime adapter.

# `wa_node`

```elixir
@type wa_node() :: term()
```

# `restart_stream`

```elixir
@callback restart_stream(pid()) :: :ok | {:error, term()}
```

# `send_node`

```elixir
@callback send_node(pid(), wa_node()) :: :ok | {:error, term()}
```

# `start_link`

```elixir
@callback start_link(keyword()) :: GenServer.on_start()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
