Distributed PubSub and Presence platform for the Phoenix Framework
Add phoenix_pubsub to your list of dependencies in mix.exs:
def deps do
  [{:phoenix_pubsub, "~> 2.0"}]
endThen start your PubSub instance:
defmodule MyApp do
  use Application
  def start(_type, _args) do
    children = [
      {Phoenix.PubSub, name: MyApp.PubSub}
    ]
    opts = [strategy: :one_for_one, name: MyApp.Supervisor]
    Supervisor.start_link(children, opts)
  end
endNow broadcast and subscribe:
Phoenix.PubSub.subscribe(MyApp.PubSub, "user:123")
Phoenix.PubSub.broadcast(MyApp.PubSub, "user:123", :hello_world)Testing by default spawns nodes internally for distributed tests.
To run tests that do not require clustering, exclude  the clustered tag:
$ mix test --exclude clusteredIf you have issues running the clustered tests try running:
$ epmd -daemonbefore running the tests.