defmodule Riptide.Server do def start_link(port, commands) do :cowboy.start_clear(:http, [{:port, port}], %{ env: %{ dispatch: config(commands) } }) end def config(commands) do :cowboy_router.compile([ { :_, [ {"/socket", Riptide.Websocket, %{commands: commands}}, {"/", Riptide.Server.OK, []} ] } ]) end def child_spec(port: port, commands: commands) do import Supervisor.Spec worker(__MODULE__, [port, commands]) end end defmodule Riptide.Server.OK do def init(req, state) do handle(req, state) end def handle(request, state) do {:ok, reply} = :cowboy_req.reply( 200, request ) {:ok, reply, state} end def terminate(_reason, _request, _state), do: :ok end