Files

21 lines
521 B
Elixir

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