3

irc 上的 liveforeverx 已经回答了我原来的问题,我已经修改了这个问题作为后续问题。

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

是因为 Plug 的任何限制,还是因为 Phoenix 在 Plug 的 api 成熟之前就开始了这种方式?

我原来的问题:

凤凰如何/从哪里开始牛仔?

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

Plug.Adapters.Cowboy.http/3

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

4

1 回答 1

9

两个原因:

  1. 支持 websocket

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

于 2015-05-15T08:20:22.853 回答