View Source Yggdrasil.Backend.Default (Yggdrasil v6.0.2)
Distributor backend to subscribe, unsubscribe and publish messages. Uses
Phoenix.PubSub
for message distribution.
This module contains helper functions used by the adapters to broadcast their messages. The possible messages are:
{:Y_CONNECTED, Channel.t()}
: When a subscriber connects to a channel successfully. Seeconnected/2
function.{:Y_DISCONNECTED, Channel.()}
; When a subscriber disconnects from a channel successfully. Seedisconnected/2
function.{:Y_EVENT, Channel.t(), term()} when message: term()
: When a subscriber gets a new messages from the adapter. Seepublish/2
function.
Link to this section Summary
Functions
Returns a specification to start this module under a supervisor.
Broadcast a connection message in a channel
and optionally to a pid
.
Broadcast a disconnection message in a channel
and optionally to a
pid
.
Broadcasts a message
in a channel
with some metadata
.
Registers backend in Registry
.
Start task to register the backend in the Registry
.
Subscribes to channel
.
Unsubscribe to channel
.
Link to this section Functions
Returns a specification to start this module under a supervisor.
arg
is passed as the argument to Task.start_link/1
in the :start
field
of the spec.
For more information, see the Supervisor
module,
the Supervisor.child_spec/2
function and the Supervisor.child_spec/0
type.
Specs
connected(Yggdrasil.Channel.t(), nil | pid()) :: :ok | {:error, term()}
Broadcast a connection message in a channel
and optionally to a pid
.
Specs
disconnected(Yggdrasil.Channel.t(), nil | pid()) :: :ok | {:error, term()}
Broadcast a disconnection message in a channel
and optionally to a
pid
.
Specs
publish(Yggdrasil.Channel.t(), term(), term()) :: :ok | {:error, term()}
Broadcasts a message
in a channel
with some metadata
.
Specs
register() :: :ok
Registers backend in Registry
.
Specs
Start task to register the backend in the Registry
.
Specs
subscribe(Yggdrasil.Channel.t()) :: :ok | {:error, term()}
Subscribes to channel
.
Specs
unsubscribe(Yggdrasil.Channel.t()) :: :ok | {:error, term()}
Unsubscribe to channel
.