我有很多频道在做不同的事情,如下所示:
starting_channel
game_channel
food_channel
chat_channel
可能有 100 个。
每个人都从加入开始starting_channel
。稍后我可以将套接字订阅到其他频道主题并相应地广播到不同的主题。但问题是我将无法重用handle_in
这些渠道中的功能,因为用户实际上并没有首先加入它们。
例如,假设 room_channel 有这个处理程序:
def handle_in("show_room_happy_users", _payload, socket) do
broadcast! socket, "happy_users", Presence.list(socket)
{:noreply, socket}
end
show_room_happy_users
但是由于您在通过发送消息时没有加入该频道,所以starting_channel
什么都不会发生。
有没有办法在不同时加入所有频道的情况下实现这一目标?