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

Built-in high-level transport backed by the full `ExWapp.Session` engine.

This adapter is the production path for WhatsApp communication. It delegates
connection lifecycle, Noise/WebSocket frames, authentication, Signal
encryption, device discovery, storage, outbound confirmation, and inbound
message delivery to the session worker.

    client =
      ExWapp.new(
        session_id: "agent-1",
        store: {ExWapp.Store.Ets, path: "agent-1.etf"},
        transport: ExWapp.Client.Transport.Session
      )

    {:ok, client} = ExWapp.connect(client)
    {:ok, client, message_id} = ExWapp.send_message(client, to: jid, text: "hello")

The internal worker pid is stored in `client.metadata[:session_pid]`. Treat
that metadata as an implementation detail; public application code should
continue passing the returned `%ExWapp.Client{}` to `ExWapp` functions.

---

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