4
我正在构建一个whatsapp克隆,并无法找出存在的一些东西。Phoenix Presence跟踪交替多个通道的用户
我有两个渠道:
channel "chats:*", Typi.ChatChannel
channel "users:*", Typi.UserChannel
用户总是连接到users:...
通道,如果他在的应用程序,并加入我开始跟踪他的存在:
def join("users:" <> user_id, _payload, socket) do
send self(), :after_join
{:ok, socket}
end
def handle_info(:after_join, socket) do
Presence.track(socket, socket.assigns.current_user.id, %{})
{:noreply, socket}
end
当用户加入一些聊天我加chat_id
元:
def join("chats:" <> chat_id, _payload, socket) do
send self(), :after_join
{:ok, assign(socket, :current_chat, chat)}
end
def handle_info(:after_join, socket) do
Presence.track(socket, socket.assigns.current_user.id, %{
chat_id: socket.assigns.current_chat.id
})
{:noreply, socket}
end
Whe用户离开聊天我想删除元信息但保持在线状态。我怎样才能做到这一点?
感谢