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}
丢失,谢谢你试图检查特定用户是否在线?我还没有找到,没有。很抱歉