Yggdrasil v5.0.2 Yggdrasil.Backend.Default View Source

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. See connected/2 function.
  • {:Y_DISCONNECTED, Channel.()}; When a subscriber disconnects from a channel successfully. See disconnected/2 function.
  • {:Y_EVENT, Channel.t(), term()} when message: term(): When a subscriber gets a new messages from the adapter. See publish/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.

Link to this function

connected(channel, pid)

View Source
connected(Yggdrasil.Channel.t(), nil | pid()) :: :ok | {:error, term()}

Broadcast a connection message in a channel and optionally to a pid.

Link to this function

disconnected(channel, pid)

View Source
disconnected(Yggdrasil.Channel.t(), nil | pid()) :: :ok | {:error, term()}

Broadcast a disconnection message in a channel and optionally to a pid.

Link to this function

publish(channel, message, metadata)

View Source
publish(Yggdrasil.Channel.t(), term(), term()) :: :ok | {:error, term()}

Broadcasts a message in a channel with some metadata.

Link to this function

register()

View Source
register() :: :ok

Registers backend in Registry.

Link to this function

start_link(_)

View Source
start_link(term()) :: {:ok, pid()}

Start task to register the backend in the Registry.

Link to this function

subscribe(channel)

View Source
subscribe(Yggdrasil.Channel.t()) :: :ok | {:error, term()}

Subscribes to channel.

Link to this function

unsubscribe(channel)

View Source
unsubscribe(Yggdrasil.Channel.t()) :: :ok | {:error, term()}

Unsubscribe to channel.