It is probably good to have a common channel for all
and filter out with handle_out
sample code
intercept ["join_game"]
# Restrict push to players only
def handle_out("join_game", payload, socket) do
player_id = socket.assigns.current_user.id
if (player_id === payload.challenger_id || player_id === payload.other_id) do
push socket, "join_game", payload
{:noreply, socket}
else
{:noreply, socket}
end
end