How to Create a Basic PubSub Application
From ElixirBlocks
This page is in progress
In LiveView
def mount(_params, _session, socket) do Testbeds.subscribe() {:ok, assign(socket, testbeds: Testbeds.list_testbeds())} end def handle_info({TestBeds, [:testbed | _], _}, socket) do {:noreply, assign(socket, testbeds: TestBeds.list_testbeds())} end
App/test_beds.ex
@topic inspect(__MODULE__) def subscribe do Phoenix.PubSub.subscribe(App.PubSub, @topic) end defp broadcast_change({:ok, result}, event) do Phoenix.PubSub.broadcast(App.PubSub, @topic, {__MODULE__, event, result}) {:ok, result} end # .... def create_testbed(attrs \\ %{}) do %Testbed{} |> Testbed.changeset(attrs) |> Repo.insert() |> broadcast_change([:testbed, :created]) end