21 lines
521 B
Elixir
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
|