当仅连接到1个通道时,Elixir重用通道功能

时间:2017-10-08 22:10:32

标签: erlang elixir phoenix-channels

我有很多渠道做不同的事情,如下所示:

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消息时,您没有加入此频道,就不会发生任何事情。

有没有办法在不加入所有频道的情况下实现这一目标?

0 个答案:

没有答案