Deployment and lifecycle management for Nix
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

client-elixir: join to client-specific topic

+23 -12
+15
client-elixir/lib/sower_client/worker.ex
··· 33 33 Logger.debug(msg: "Connected") 34 34 {:ok, join(socket, @topic)} 35 35 end 36 + 37 + @impl Slipstream 38 + def handle_join(@topic, %{"sid" => sid}, socket) do 39 + Logger.debug(msg: "Joined channel topic", topic: @topic) 40 + 41 + socket = socket |> assign(:sid, sid) |> join("client:#{sid}") 42 + 43 + {:ok, socket} 44 + end 45 + 46 + @impl Slipstream 47 + def handle_join("client:" <> _sid = topic, _response, socket) do 48 + Logger.debug(msg: "Joined channel topic", topic: topic) 49 + {:ok, socket} 50 + end 36 51 end
+1 -1
flake.nix
··· 74 74 config.process-compose.devServices.services.postgres.postgres1.package 75 75 config.process-compose.devServices.outputs.package 76 76 pkgs.sd-switch 77 - pkgs.watchexec 77 + pkgs.entr 78 78 ] 79 79 ++ lib.optionals pkgs.stdenv.isLinux [ 80 80 # elixir
+7 -11
lib/sower_web/client_channel.ex
··· 3 3 4 4 require Logger 5 5 6 - def join("client:lobby", _message, socket) do 7 - # send(self(), :push_tree_id_to_client) 8 - Logger.debug(msg: "Channel topic joined", topic: "client:all", sid: socket.assigns.sid) 9 - {:ok, socket} 6 + def join("client:lobby", _message, socket = %{assigns: %{sid: sid}}) do 7 + Logger.debug(msg: "Channel topic joined", topic: "client:all", sid: sid) 8 + {:ok, %{sid: sid}, socket} 10 9 end 11 10 12 - def join("client:" <> client_name, _params, socket = %{assigns: %{tree_id: tree_id}}) do 13 - if tree_id == client_name do 11 + def join("client:" <> topic_sid = topic, _params, socket = %{assigns: %{sid: sid}}) do 12 + Logger.debug(msg: "Channel topic joined", topic: topic, sid: sid) 13 + 14 + if sid == topic_sid do 14 15 {:ok, socket} 15 16 else 16 17 {:error, %{reason: "unauthorized"}} ··· 38 39 # {:reply, {:error, "failed to submit"}, socket} 39 40 # end 40 41 # end 41 - 42 - def handle_info(:push_tree_id_to_client, socket) do 43 - # push(socket, "tree:id", %{tree_id: socket.assigns.tree_id}) 44 - {:noreply, socket} 45 - end 46 42 end