菲尼克斯:可以通过控制器更新状态吗?

时间:2018-11-01 23:47:38

标签: elixir phoenix-framework

在Phoenix中,可以用类似的东西从控制器中广播到某个主题

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

0 个答案:

没有答案