Elixir 为什么从不调用handle_info?
我试图利用Elixir 为什么从不调用handle_info?,elixir,phoenix-framework,Elixir,Phoenix Framework,我试图利用handle\u info跟踪加入用户的状态,但我注意到,尽管用户成功加入并发送/接收消息,但从未调用handle\u info defmodule App.UserChannel do use App.Web, :channel alias App.Presence ... ... def handle_info(info, socket) do IO.puts info IO.puts "* * * " {:ok, _} = Presence.track
handle\u info
跟踪加入用户的状态
,但我注意到,尽管用户成功加入并发送/接收消息,但从未调用handle\u info
defmodule App.UserChannel do
use App.Web, :channel
alias App.Presence
...
...
def handle_info(info, socket) do
IO.puts info
IO.puts "* * * "
{:ok, _} = Presence.track(socket, socket.assigns.user_id, %{
online_at: inspect(System.system_time(:seconds))
})
push socket, "presence_state", Presence.list(socket)
{:noreply, socket}
end
...
...
有什么想法吗
在服务器端,在App.UserChannel
中,我如何知道某个用户是在线还是离线
编辑
我是否需要使用长生不老药1.3才能让状态发挥作用?我使用的是Elixir 1.2.6,Phoenix(1.2.0-rc.1)您不需要Elixir 1.3,但在我在DailyDrip上使用的示例中,您在其他地方引用了关于此问题的内容()我的连接函数有以下内容:
def join("room:lobby", msg, socket) do
send self, {:after_join, msg} # <---
{:ok, socket}
end
def join(“房间:大厅”、消息、插座)do
发送self,{:加入后,msg}啊!是的,send self,{:加入后,msg}
丢失,谢谢你试图检查特定用户是否在线?我还没有找到,没有。很抱歉