Phoenix.PubSub.Local

PubSub implementation for handling local-node process groups

This module is used by Phoenix pubsub adapters to handle their local node topic subscriptions. 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 the HashSet 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 registered 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
         the pubsub adapter

Examples

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

Returns the HashSet 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")
#HashSet<[]>
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