4
whatsapp 클론을 만들고 현재 상태로 몇 가지 문제를 파악하는 데 어려움이 있습니다.Phoenix Presence 트랙 사용자가 여러 채널에서 번갈아 메타를 사용합니다.
나는이 두 채널 :
사용자는 자신이 응용 프로그램에있는 경우 항상users:...
채널에 연결되고 나는 그의 존재 추적을 시작 가입되어
channel "chats:*", Typi.ChatChannel
channel "users:*", Typi.UserChannel
:
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 n 사용자가 채팅에서 나가기 메타 정보를 삭제하지만 현재 상태를 유지하려고합니다. 어떻게해야합니까?
감사