# `Musubi.Transport.ConnectionChannel`
[🔗](https://github.com/fahchen/musubi/blob/v0.3.0/lib/musubi/transport/connection_channel.ex#L1)

Phoenix Channel adapter for Musubi sockets with multiple root stores.

The channel owns one joined Musubi socket and a dynamic set of root page
servers. `join/3` runs the socket module's `Musubi.Socket.handle_join/2` once.
Each client `"mount"` message starts one root store page server using the
shared joined socket assigns and private connection context.

## Telemetry

  * `[:musubi, :channel, :join]` — `%{system_time: integer}`. Metadata:
    `module`, `id`, `topic`, `page_pid`. For this adapter `module` is the
    Musubi socket module, and `id`/`page_pid` are `nil` because roots mount
    later inside the joined connection.
  * `[:musubi, :channel, :terminate]` — `%{system_time: integer}`.
    Metadata: `module`, `id`, `topic`, `reason`, `page_pid`, `root_count`.
    `root_count` is the number of mounted root page servers the connection is
    stopping.

# `child_spec`

# `start_link`

---

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