Something on the following should work:
def MyApp.MyPubSubListener do
use GenServer
alias Phoenix.PubSub
def publish(what), do: PubSub.broadcast SomeName, "channel_to_send_receive_messages", what
# Callbacks
def init() do
PubSub.subscribe SomeName, self, "channel_to_send_receive_messages"
{:ok, %{}} # The initial state of this GenServer.
end
def handle_info(message, state) do
# ... do something with your message/state ...
{:no_reply, state}
end
end
That should do the trick. Do not forget to start it in a supervision tree of sorts. And remember to create one for each channel/topic you want to subscribe.