Phoenix.PubSub.Local

PubSub implementation for handling local-node process groups.

This module is used by Phoenix pubsub adapters to handle their local node subscriptions and it is usually not accessed directly. See Phoenix.PubSub.PG2 for an example integration.

Source

Summary

broadcast(local_server, from, topic, msg)

Sends a message to all subscribers of a topic

start_link(server_name)

Starts the server

subscribe(local_server, pid, topic, opts \\ [])

Subscribes the pid to the topic

subscribers(local_server, topic)

Returns a set of subscribers pids for the given topic

unsubscribe(local_server, pid, topic)

Unsubscribes the pid from the topic

Functions

broadcast(local_server, from, topic, msg)

Sends a message to all subscribers of a topic.

  • local_server - The registered server name or pid
  • topic - The string topic, ie “users:123”

Examples

iex> broadcast(:local_server, self, "foo")
:ok
iex> broadcast(:local_server, :none, "bar")
:no_topic
Source
start_link(server_name)

Starts the server.

  • server_name - The name to register the server under
Source
subscribe(local_server, pid, topic, opts \\ [])

Subscribes the pid to the topic.

  • local_server - The registered server name or pid
  • pid - The subscriber pid
  • topic - The string topic, ie “users:123”
  • opts - The optional list of options. Supported options only include :link to link the subscriber to local

Examples

iex> subscribe(:local_server, self, "foo")
:ok
Source
subscribers(local_server, topic)

Returns a set of subscribers pids for the given topic.

  • local_server - The registered server name or pid
  • topic - The string topic, ie “users:123”

Examples

iex> subscribers(:local_server, "foo")
Enumerable.t
Source
unsubscribe(local_server, pid, topic)

Unsubscribes the pid from the topic.

  • local_server - The registered server name or pid
  • pid - The subscriber pid
  • topic - The string topic, ie “users:123”

Examples

iex> unsubscribe(:local_server, self, "foo")
:ok
Source