1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/imboy-pub-imboy

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

На основе 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.

  • Подробнее.

Доступ к удалённому узлу Erlang shell

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


// Будьте осторожны! Это создаст файл, даже если он уже существует.
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

Аналитический инструмент

  • Dialyzer.
  • Looking Glass.
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 )

Вы можете оставить комментарий после Вход в систему

Введение

Использование Erlang и PostgreSQL для разработки серверной части, а Flutter — для разработки клиентской части представляет собой открытое решение для мгновенного обмена сообщениями. В качестве серверного сервиса используется высокопроизводительный веб-фреймворк Cowboy на основе Erlang/OTP. Нагрузочное тестирование проводилось на хосте с 8 ядрам... Развернуть Свернуть
Erlang и 6 других языков
MulanPSL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/imboy-pub-imboy.git
git@api.gitlife.ru:oschina-mirror/imboy-pub-imboy.git
oschina-mirror
imboy-pub-imboy
imboy-pub-imboy
main