diff --git a/lib/towerops_web/channels/agent_channel.ex b/lib/towerops_web/channels/agent_channel.ex index 3a9d6c38..ef6ad0df 100644 --- a/lib/towerops_web/channels/agent_channel.ex +++ b/lib/towerops_web/channels/agent_channel.ex @@ -65,19 +65,21 @@ defmodule ToweropsWeb.AgentChannel do job_list = %AgentJobList{jobs: jobs} binary = AgentJobList.encode(job_list) - push(socket, "jobs", {:binary, binary}) + push(socket, "jobs", %{binary: Base.encode64(binary)}) {:noreply, socket} end @impl true - def handle_in("result", {:binary, binary}, socket) do + def handle_in("result", %{"binary" => binary_b64}, socket) do + binary = Base.decode64!(binary_b64) result = SnmpResult.decode(binary) process_snmp_result(socket.assigns.organization_id, result) {:noreply, socket} end @impl true - def handle_in("heartbeat", {:binary, binary}, socket) do + def handle_in("heartbeat", %{"binary" => binary_b64}, socket) do + binary = Base.decode64!(binary_b64) heartbeat = AgentHeartbeat.decode(binary) metadata = %{ @@ -91,7 +93,8 @@ defmodule ToweropsWeb.AgentChannel do end @impl true - def handle_in("error", {:binary, binary}, socket) do + def handle_in("error", %{"binary" => binary_b64}, socket) do + binary = Base.decode64!(binary_b64) error = AgentError.decode(binary) Logger.error("Agent job error",