Невозможно начать прослушивание сервера, следуя инструкциям ковбоя
Я пытаюсь следовать руководству по ковбою и не могу понять, как запустить 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
Некоторые наивные вопросы, на которые я не могу найти ответы:
1) Нужно ли что-то делать, чтобы что-то "запустить", или make run
достаточно? то есть я пытался запустить двоичный файл, который находится в _rel/hello_erlang/bin/hello_erlang_release
с началом | остановить | приставка.
2) Может быть, ковбой - это не правильный вариант для меня, чтобы начать. В настоящее время мне интересно узнать, подходит ли мне Эрланг. Может быть, мне не следует начинать с Интернета или не следует использовать какую-либо библиотеку, чтобы устранить путаницу и сосредоточиться только на Эрланге. Какие-либо предложения?
Я наверняка упускаю что-то очень очевидное, но не могу найти это.
Ценю любую помощь, спасибо