22 lines
578 B
Elixir
22 lines
578 B
Elixir
defmodule Localiser.Web.Channels.ParticlesChannel do
|
|
use Phoenix.Channel
|
|
|
|
@impl true
|
|
def join("particles:" <> tag_id, _params, socket) do
|
|
Phoenix.PubSub.subscribe(Localiser.PubSub, "particles:#{tag_id}")
|
|
{:ok, assign(socket, :tag_id, tag_id)}
|
|
end
|
|
|
|
@impl true
|
|
def handle_info({:particles_updated, payload}, socket) do
|
|
push(socket, "particles_updated", %{
|
|
tag_id: payload.tag_id,
|
|
estimate: payload.estimate,
|
|
particles: payload.particles
|
|
})
|
|
{:noreply, socket}
|
|
end
|
|
|
|
def handle_info(_msg, socket), do: {:noreply, socket}
|
|
end
|