Феникс: возможно ли обновить присутствие с контроллера? - PullRequest
0 голосов
/ 02 ноября 2018

В Фениксе возможна трансляция в тему с контроллера с чем-то вроде

MyApp.Endpoint.broadcast! "room:superadmin", "new_msg", %{uid: uid, body: body}

возможно ли обновить присутствие с контроллера?

Редактировать

Мой вопрос заключается в том, что для обновления присутствия необходим сокет, а в контроллере его нет.

Сейчас пытаюсь, трансляция в контроллере

MonitorWeb.Endpoint.broadcast! "room:lobby",
    "update_presence", %{body: "hello world"}

и перехват в канале

  intercept ["update_presence"]

  def join("room:lobby", _message, socket) do
    ...
  end

  def handle_out("update_presence", payload, socket) do
    ...

    Presence.update(socket, id, %{content: "new content"
    })
  end
...