AK
Size: a a a
AK
VA
:observer.start() проверь из консоли iex.AK
AK
'automake' не скачивается 😒AK
ŹR
AK
ŹR
ŹR
ŹR
AK
ŹR
asdf install elixir 1.9.1-otp-22AK
asdf install elixir 1.9.1-otp-22AM
AK
:observer.start() проверь из консоли iex.VA
AK
AK
VI
# lib/webinargeek/application.ex
defmodule App.Application do
use Application
def start(_type, _args) do
children = [
App.Repo,
App.Endpoint,
App.Presence,
{PresenceMonitor, :broadcast_presence_monitor}
]
opts = [strategy: :one_for_one, name: App.Supervisor]
Supervisor.start_link(children, opts)
end
...
lib/webinargeek_web/channels/broadcast_channel.exPres
...
def handle_info(:after_join, socket) do
subscription_id = socket.assigns.subs_id
if socket.assigns.needs_presence, do: push(socket, "presence_state", Presence.list(socket))
{:ok, _} = Presence.track(socket, subscription_id, %{subs_id: subscription_id})
:ok = start_presence_monitor(socket)
{:noreply, socket}
end
defp start_presence_monitor(socket) do
PresenceMonitor.monitor(
:broadcast_presence_monitor,
"broadcast:" <> socket.assigns.broadcast,
socket.assigns.subs_id
)
end
...
enceMonitor это обычный GenServer.
Тепер, как я понимаю, в его методе monitor я должен динамически стартовать новый процесс, который будет следить за презенсом для конкретного канала. VI