defmodule Localiser.Web.Channels.RoomChannel do use Phoenix.Channel @impl true def join("rooms:occupancy", _params, socket) do Phoenix.PubSub.subscribe(Localiser.PubSub, "rooms:occupancy") {:ok, socket} end @impl true def handle_info({:room_occupancy_changed, room_id, occupants}, socket) do push(socket, "occupancy_changed", %{ room_id: room_id, occupants: MapSet.to_list(occupants) }) {:noreply, socket} end def handle_info(_msg, socket), do: {:noreply, socket} end