首页 > 解决方案 > 无法按照牛仔指南开始监听服务器

问题描述

我正在尝试遵循这里的牛仔指南,但我似乎无法理解如何启动http 服务器。程序编译并启动,但没有监听 8080 端口的 http 服务器。

运行make rundo 似乎可以编译并运行i()我确实看到的命令,hello_erlang_sup如指南页面所述。

但是在将更改应用到hello_world_app:start/2并运行之后,make run或者make没有可用的 http 侦听器。

我还添加erlang:display(inside_start),了函数内部,并希望它可以打印到终端,不,也许这个函数没有被调用?但是,作为语言和牛仔的新手,我该如何调查,已经有大约 100 个文件用于 hello world ;)。

这是作为参考的功能:

start(_Type, _Args) ->
    erlang:display(inside_start),
    Dispatch = cowboy_router:compile([
        {'_', [
            {"/", hello_handler, []}
        ]}
    ]),
    {ok, _} = cowboy:start_clear(my_http_listener, [{port, 8080}], #{
        env => #{dispatch => Dispatch}
    }),
    hello_world_sup:start_link().

如果有帮助/有影响:

$ erl --version
Erlang/OTP 21 [erts-10.1.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe]

$ uname -a
Linux 4.18.16-arch1-1-ARCH x86_64 GNU/Linux

一些我似乎无法在 atm 找到答案的幼稚问题:

1)我是否必须做一些事情才能真正“开始”任何事情,或者make run就足够了?即我尝试运行_rel/hello_erlang/bin/hello_erlang_release带有 start |的二进制文件。停止 | 安慰。

2)也许牛仔不是我开始的正确选择。我目前有兴趣看看 Erlang 是否适合我。也许我不应该从 web 开始,或者不应该使用任何库来消除混乱,只关注 Erlang。有什么建议么?

我肯定错过了一些非常明显但找不到的东西。

感谢任何帮助,谢谢

标签: erlangcowboy

解决方案


推荐阅读