Tortoise311.Supervisor (tortoise311 v0.11.1) View Source

A dynamic supervisor that can hold Tortoise311.Connection processes

A Tortoise311.Supervisor, registered under the name Tortoise311.Supervisor, is started as part of the Tortoise311.App, which will get started automatically when Tortoise311 is included as a Mix dependency. Spawning a connection on the Tortoise311.Supervisor can be done as follows:

{:ok, pid} =
  Tortoise311.Supervisor.start_child(
    client_id: T1000,
    handler: {Tortoise311.Handler.Logger, []},
    server: {Tortoise311.Transport.Tcp, host: 'localhost', port: 1883},
    subscriptions: [{"foo/bar", 0}]
  )

While this is an easy way to get started one should consider the supervision strategy of the application using the Tortoise311.Connections. Often one would like to close the connection with the application using the connection, in which case one could consider starting the Tortoise311.Connection directly in the supervisor of the application using the connection, or start a Tortoise311.Supervisor as part of ones application if it require more than one connection.

See the Connection Supervision article in the project documentation for more information on connection supervision.

Link to this section Summary

Functions

Returns a specification to start this module under a supervisor.

Start a dynamic supervisor that can hold connection processes.

Link to this section Functions

Returns a specification to start this module under a supervisor.

See Supervisor.

Link to this function

start_child(supervisor \\ __MODULE__, opts)

View Source

Start a connection as a child of the Tortoise311.Supervisor.

supervisor is the name of the supervisor the child should be started on, and it defaults to Tortoise311.Supervisor.

Start a dynamic supervisor that can hold connection processes.

The :name option can also be given in order to register a supervisor name, the supported values are described in the "Name registration" section in the GenServer module docs.