Полнофункциональный чат в комнатах для десятков тысяч пользователей. Клиент плюс Сервер. Создан с использованием веб-фреймворка Oat++.
Single-Node
WebSocket
TLS
In-Memory
.
docker run -p 8443:8443 -e EXTERNAL_ADDRESS=localhost -e EXTERNAL_PORT=8443 -it lganzzzo/ canchat
Все общение происходит в чатах.
Каждая комната имеет уникальный URL-адрес.
Любой, у кого есть URL-адрес комнаты, может присоединиться к комнате. Генерация случайных достаточно длинных URL-адресов комнат обеспечивает конфиденциальность участников. Обязательно сообщайте URL-адрес комнаты только нужным участникам.
Комнаты автоматически создаются, когда первый участник присоединяется к комнате, и автоматически удаляются, когда последний участник покидает комнату.
История чата доступна для вновь присоединившихся участников. История округляется, когда количество сообщений в комнате превышает параметр конфигурации maxRoomHistoryMessages
. История удаляется и становится недоступной после удаления комнаты.
Пользователи могут делиться несколькими файлами одновременно.
Файлы передаются непосредственно с одноранговой машины. Ничего не загружается на сервер и не сохраняется в стороннем месте.
Как только узел-одноранговый узел отменяет общий доступ к файлам, файлы больше не доступны.
Если хост-одноранговый узел выходит из комнаты, весь его обмен файлами прекращается.
LibreSSL
версии 3.0.0
или новее. Для установки модулей oatpp вы можете использовать скрипт utility/install-oatpp-modules.sh
$ cd < this-repo > /server/
$ mkdir build/ && cd build/
$ cmake ..
$ make
Теперь запустите чат-сервер
$ canchat -exe --host localhost --port 8443
$ docker build -t canchat .
$ docker run -p 8443:8443 -e EXTERNAL_ADDRESS=localhost -e EXTERNAL_PORT=8443 -it canchat
Затем перейдите по адресу https://localhost:8443/ в браузере. (принять самоподписанный сертификат)
Параметры изображения:
-e EXTERNAL_ADDRESS
— Адрес, к которому должен подключиться клиент.-e EXTERNAL_PORT
— порт EXTERNAL_ADDRESS
, к которому должен подключиться клиент. Чат-сервер также будет работать на этом порту .-e TLS_FILE_PRIVATE_KEY
— путь к файлу закрытого ключа TLS.-e TLS_FILE_CERT_CHAIN
— путь к файлу цепочки сертификатов TLS. - front/ # - Front-end sources are here
- server/ # - Server sources are here
- cert/ # - test TLS certificate is here
- utility/
|
|- install-oatpp-modules.sh # - useful script to install required oatpp modules
Этот проект выпущен под Apache License 2.0
.
Наслаждаться!