Монорепа с чатом на вебсокетах.
За основу взяты два отдельных проекта: chat-server и chat-client-web.
28-го февраля 2020 мы показывали:
- Выделение разных частей компиляции в одном проекте — Gradle модули (папки
client-web
иserver
). - kotlinx.serialization для получения и декодирования JSON.
Также в репозитории:
- Multiplatform module (для хранения констант и протокола для клиента и сервера) — папка
common
. - GitHub actions (для проверки компиляции и тестирования проекта на чистой машине).
- GitHub actions шильдик (для красоты).
Клиент строится с помощью ./gradlew :client-web:browserProductionWebpack
, и в папке client-web/build/distributions
оказывается сгенерированный общий JS файл и все файлы ресурсов. Для запуска нужно открыть в браузере HTML файл.
Сервер строится с помощью ./gradlew :server:jar
и запускается с помощью java -jar server/build/libs/server-1.0-SNAPSHOT.jar
.