aboutsummaryrefslogtreecommitdiff
path: root/lib/octochat/server_supervisor.ex
blob: d412ca5397eea9bdb5cadd8bbc5d777e18e3829f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
defmodule Octochat.ServerSupervisor do
  @moduledoc """
  Simple One-for-One Supervisor for socket connections
  """

  use Supervisor

  def start_link() do
    Supervisor.start_link(__MODULE__, :ok, name: __MODULE__)
  end

  def init(:ok) do
    children = [
      worker(Octochat.Echo, [], restart: :temporary)
    ]

    supervise(children, strategy: :simple_one_for_one)
  end

  def start_server(socket) do
    Supervisor.start_child(__MODULE__, [socket])
  end

end