mirror of
https://github.com/phoenixframework/phoenix_pubsub.git
synced 2026-03-20 06:44:19 +00:00
Distributed PubSub and Presence platform for the Phoenix Framework
http://www.phoenixframework.org/
| .github/workflows | ||
| lib/phoenix | ||
| script | ||
| test | ||
| .gitignore | ||
| CHANGELOG.md | ||
| LICENSE.md | ||
| mix.exs | ||
| mix.lock | ||
| README.md | ||
Phoenix.PubSub
Distributed PubSub and Presence platform for the Phoenix Framework
Usage
Add phoenix_pubsub to your list of dependencies in mix.exs:
def deps do
[{:phoenix_pubsub, "~> 2.0"}]
end
Then 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
end
Now broadcast and subscribe:
Phoenix.PubSub.subscribe(MyApp.PubSub, "user:123")
Phoenix.PubSub.broadcast(MyApp.PubSub, "user:123", :hello_world)
Testing
Testing by default spawns nodes internally for distributed tests.
To run tests that do not require clustering, exclude the clustered tag:
$ mix test --exclude clustered
If you have issues running the clustered tests try running:
$ epmd -daemon
before running the tests.