我正在尝试遵循cowboy guide here,但似乎无法理解如何启动 http服务器。该程序会编译并启动,但是没有HTTP服务器在端口8080上侦听。
运行make run
确实可以编译并运行i()
命令,我确实看到了hello_erlang_sup
流程,如指南页所示。
但是将更改应用到hello_world_app:start/2
并运行make run
或make
之后,没有http侦听器可用。
我还在函数内添加了erlang:display(inside_start),
,希望它可以打印到终端上,不是,也许这个函数没有被调用?但是,作为语言和牛仔的新手,我该如何调查呢,已经有100个文件用于问候世界了;)。
以下是参考功能:
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
就足够了?即,我尝试使用start |运行_rel/hello_erlang/bin/hello_erlang_release
中的二进制文件停止|控制台。
2)也许牛仔不是我开始的正确选择。我目前对查看Erlang是否适合我很感兴趣。也许我不应该从Web入手,也不应该使用任何库来消除混乱并仅关注Erlang。有什么建议吗?
我肯定会错过一些非常明显但找不到的东西。
感谢任何帮助, 谢谢