凤凰城存在与多渠道连接的覆盖

时间:2019-05-06 08:19:37

标签: elixir phoenix-framework user-presence phoenix-channels

我面临一个问题。请帮帮我。

对于不同的用户类型(例如Admin和User),我有两个不同的渠道。

  

管理员频道:{admin_id} (用于管理员)

     

频道用户:{user_id} 用户

每个管理员和用户都将使用他们自己的主题进行连接,我正在跟踪他们的状态,但是问题是当用户或管理员连接覆盖其状态的通道时。 例如,当用户连接该优先管理员的状态时,以及当管理员连接该优先用户的状态时。

这是示例代码。

用户

user_channel.ex

{:ok, _} =
Presence.track(socket, “user:#{socket.assigns.id}”, %{
user_type: socket.assigns.sender,
user_id: socket.assigns.userid
})

管理员

admin_channel.ex

{:ok, _} =
Presence.track(socket, “agent:#{socket.assigns.id}”, %{
user_type: socket.assigns.sender,
user_id: socket.assigns.userid
})

存在

presence.ex

use Phoenix.Presence,
otp_app: :myapp,
pubsub_server: MyappWeb.PubSub,
pool_size: 10

def fetch(_topic, entries) do
IO.inspect(_topic)
IO.inspect(entries)
end

0 个答案:

没有答案