我面临一个问题。请帮帮我。
对于不同的用户类型(例如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