为什么Phoenix不使用Plug来启动服务器?

sha*_*evy 3 elixir phoenix-framework

irc上的liveforeverx回答了我原来的问题,我已将此问题修改为后续问题.

Phoenix的许多功能都依赖于Plug.但是,当谈到启动牛仔服务器时,凤凰为什么不在Phoenix.Endpoint.CowboyHandler.start_link中使用Plug的api启动呢?为什么要调用ranch_listener_sup上的start_link呢?

是因为Plug的任何限制还是因为Phoenix在Plug的api成熟之前就开始了这么多?

我原来的问题:

菲尼克斯如何/在哪里开始牛仔?

阅读Plug文档,我看到要启动服务器,必须调用

Plug.Adapters.Cowboy.http/3
Run Code Online (Sandbox Code Playgroud)

但是,通过我的凤凰应用程序和凤凰源代码,我没有看到任何调用实例Plug.Adapters.Cowboy.http/3.菲尼克斯如何/在哪里开始牛仔?

Jos*_*lim 9

两个原因:

  1. 支持websockets

  2. 因为Phoenix在应用程序监督树中启动服务器而不是在Cowboy中运行您的应用程序