3

irc の liveforeverx が私の元の質問に答えてくれたので、フォローアップとしてこの質問を修正しました。

Phoenix は、その機能の多くを Plug に依存しています。しかし、カウボーイ サーバーを起動する場合、Phoenix は Phoenix.Endpoint.CowboyHandler.start_link の Plug の API を使用して起動しないのはなぜですか? 代わりに、ranch_listener_sup の start_link が呼び出されるのはなぜですか?

Plug の何らかの制限のためですか、それとも Plug の API が成熟するずっと前に Phoenix がこのように開始したためですか?

私の元の質問:

フェニックスはカウボーイをどのように/どこで始めますか?

Plug docs を読むと、サーバーを起動するには、呼び出す必要があることがわかります

Plug.Adapters.Cowboy.http/3

ただし、私のフェニックス アプリとフェニックス ソース コードを調べてみると、 への呼び出しのインスタンスが表示されませんPlug.Adapters.Cowboy.http/3。フェニックスはカウボーイをどのように/どこで始めますか?

4

1 に答える 1

9

2 つの理由:

  1. ウェブソケットをサポートするには

  2. Phoenix は、Cowboy 内でアプリを実行するのではなく、アプリケーション監視ツリー内でサーバーを起動するためです。

于 2015-05-15T08:20:22.853 に答える