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. 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.

Specs

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

Specs

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

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_link(term()) :: {:ok, pid()}

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.