На основе Cowboy (Small, fast, modern HTTP server for Erlang/OTP) разработан бэкенд для мгновенного чата.
Тестирование проводилось на «АЛИ облако 8 ядер 16G ecs.sn1ne.2xlarge хост (100 000 PPS)». Результаты: поддержание более 100 000 TCP соединений в течение 90 минут и более. Подробные результаты тестирования см. в тестировании документа.
Так как я являюсь гражданином Китая, то выбрал лицензию Moolan Broad Soft, версия 2.
Некоторые функции были разработаны с учётом процесса проектирования мышления. Подробнее см. в документе.
Стремление реализовать управление версиями на основе «Спецификации семантического контроля версий» (Semantic Versioning 2.0.0).
Изменения в структуре данных (./doc/postgresql/) разработки. В настоящее время используется PostgreSQL15.
Erlang/OTP 24 (Cowboy 2.11 требует Erlang/OTP 24.0 или выше).
Erlang/OTP 25.
Erlang/OTP 26.
База данных PostgreSQL15.
erl -name debug -setcookie imboy
net_adm:ping('imboy@api.docker.imboy.pub').
net_kernel:connect_node('imboy@api.docker.imboy.pub').
erl -name debug@127.0.0.1
auth:set_cookie('imboy'),net_adm:ping('imboy@127.0.0.1').
net_adm:names().
{ok,[{"imboy",55042},{"debug",60595}]}
Нажмите Ctrl+G, чтобы появилась команда переключения пользователя. Затем введите:
r 'imboy@127.0.0.1'
нажмите Enter.
Чтобы отобразить узел *:
--> j
1 {shell,start,[init]}
2* {'imboy@127.0.0.1',shell,start,[]}
В * находится текущий узел по умолчанию, в котором 1 строка — это ваш текущий главный узел.
Нажмите c, чтобы подключиться.
Если вы хотите подключиться к третьему узлу, просто введите c 6 и нажмите Enter.
curl -L https://github.com/sile/erldash/releases/download/0.1.1/erldash-0.1.1.x86_64-unknown-linux-musl -o erldash
chmod +x erldash
./erldash imboy@127.0.0.1 -c imboy
make new t=cowboy.middleware n=demo_middleware
make new t=cowboy.middleware n=verify_middleware
make new t=gen_server n=account_server
make distclean
// Я добавил шаблон, который начинается с imboy:
make new t=imboy.rest_handler n=demo_handler
make new t=imboy.logic n=demo_logic
make new t=imboy.repository n=demo_repo
make new t=imboy.ds n=demo_ds
make list-templates
make new-lib in=imlib
make new-lib in=imcron
make new-lib in=imds
make new t=imboy.logic n=demo_cron_logic in=imcron
make new t=imboy.rest_handler n=adm_passport_handler in=imadm
make new-app in=imsos
...
make run
// На Mac
IMBOYENV=prod make run
IMBOYENV=test make run
IMBOYENV=dev make run
IMBOYENV=local make run
make rel IMBOYENV=local
// На CentOS8 ИЛИ macOS
export IMBOYENV='local' && make run
observer_cli:start().
make new t=gen_server n=server_demo
// Перезагрузите конфигурацию sys.config
config_ds:local_reload()
Routes = imboy_router:get_routes(),
Dispatch = cowboy_router:compile(Routes),
cowboy:set_env(imboy_listener, dispatch, Dispatch).
make dialyze
// Будьте осторожны! Это создаст файл, даже если он уже существует.
make rebar.config
make rel
make help
rel Build a release for this project, if applicable
Выполните в другом shelll:
erl> help().
lm() -- load all modified modules
// Обновите erlang.mk
make erlang-mk
make new-app in=webchat
./doc/test.md
make dialyze
Инструмент форматирования кода
get from https://github.com/sile/efmt/releases
VERSION=0.14.1
curl -L https://github.com/sile/efmt/releases/download/${VERSION}/efmt-${VERSION}.x86_64-unknown-linux-musl -o efmt
chmod +x efmt
./efmt
./efmt -c src/websocket_logic.erl
./efmt -w src/websocket_logic.erl
IMBOYENV=prod make rel
IMBOYENV=test make rel
IMBOYENV=dev make rel -j8
IMBOYENV=local make rel
% Создайте архив самораспаковывающегося архива
% Сценарий самораспаковки в настоящее время поддерживает только запуск выпуска в режиме консоли
IMBOYENV=local make SFX=1
% run
_rel/imboy.run
Скопируйте код в определённую папку:
cp ./_rel/imboy/imboy-1.0.0.tar.gz
// or
scp ./_rel/imboy/imboy-1.0.0.tar.gz root@192.168.2.207:/usr/local/imboy/
Запустите службу:
mkdir -p /usr/local/imboy
cp ./_rel/imboy/imboy-1.0.0.tar.gz /usr/local/imboy/
cd /usr/local/imboy
tar -xzf
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )