Phoenix v1.4.3 Phoenix.Endpoint.Cowboy2Adapter View Source

The Cowboy2 adapter for Phoenix.

It implements the required child_spec/3 function as well as WebSocket transport functionality.

Custom dispatch options

You can provide custom dispatch options in order to use Phoenix’s builtin Cowboy server with custom handlers. For example, to handle raw WebSockets as shown in Cowboy’s docs).

The options are passed to both :http and :https keys in the endpoint configuration. However, once you pass your custom dispatch options, you will need to manually wire the Phoenix endpoint by adding the following rule:

{:_, Phoenix.Endpoint.Cowboy2Handler, {MyAppWeb.Endpoint, []}}

For example:

config :myapp, MyAppWeb.Endpoint,
  http: [dispatch: [
          {:_, [
              {"/foo", MyAppWeb.CustomHandler, []},
              {:_, Phoenix.Endpoint.Cowboy2Handler, {MyAppWeb.Endpoint, []}}
            ]}]]

It is also important to specify your handlers first, otherwise Phoenix will intercept the requests before they get to your handler.