defmodule Prymn.Messaging do @moduledoc """ The Prymn messaging system """ alias Prymn.Messaging def open_terminal(agent_id) do msg = Jason.encode!(%{"id" => "foo"}) :ok = Messaging.Connection.subscribe_to_agent(:nats1, agent_id, "terminal.foo.output") :ok = Messaging.Connection.publish_to_agent(:nats1, agent_id, "open_terminal", msg) end def close_terminal(agent_id) do :ok = Messaging.Connection.publish_to_agent(:nats1, agent_id, "terminal.foo.close") end def resize_terminal(agent_id, rows, cols) do msg = Jason.encode!(%{"rows" => rows, "cols" => cols}) :ok = Messaging.Connection.publish_to_agent(:nats1, agent_id, "terminal.foo.resize", msg) end def send_terminal_input(agent_id, input) do :ok = Messaging.Connection.publish_to_agent(:nats1, agent_id, "terminal.foo.input", input) end end