Update README.md
This commit is contained in:
parent
71ddf96403
commit
68a20a4e31
52
README.md
52
README.md
|
|
@ -1,13 +1,49 @@
|
||||||
# TyChat
|
# TyChat
|
||||||
|
|
||||||
Всегда хотели сделать свой мессенджер но не знаете как?
|
**TyChat** — это легковесный Peer-to-Peer (P2P) мессенджер, использующий сигнальный сервер для координации и связи клиентов в обход сетевых ограничений.
|
||||||
Данный репозиторий содержит базовые классы как для клиента так и для сервера которые можно наследовать.
|
|
||||||
|
|
||||||
## Как начать пользоваться
|
---
|
||||||
1. Создаете форк данного репозитория или клонируйте его локально
|
|
||||||
2. Наследуете класс клиента и пишите клиент
|
|
||||||
3. Пишете собственный способ передачи данных и протокол или находите подходящие.
|
|
||||||
4. Пишите сервер или используете оффициальный сигнальный сервер находящийся на http://6969.рф:5000
|
|
||||||
|
|
||||||
|
## Архитектура и решение проблем NAT
|
||||||
|
|
||||||
Понравился проект и хотите поддержать его развитие? Поддержите его на (DaLink)[https://dalink.to/palerfnaf]
|
В современных реалиях классический P2P сталкивается с проблемой «серых» IP-адресов (Carrier-Grade NAT), из-за которых клиенты не могут установить прямое соединение друг с другом.
|
||||||
|
|
||||||
|
**TyChat решает эту проблему созданием виртуальной оверлейной сети:**
|
||||||
|
|
||||||
|
* Сигнальный сервер объединяет подключённые клиенты в единую «локальную сеть».
|
||||||
|
* Вместо стандартных IPv4/IPv6 используется кастомная динамическая система адресации, абстрагированная от физического местоположения пользователя.
|
||||||
|
|
||||||
|
### Система адресации
|
||||||
|
|
||||||
|
Сеть автоматически масштабируется в зависимости от количества участников:
|
||||||
|
|
||||||
|
* Изначально каждому новому клиенту выделяется уникальный **6-значный адрес**.
|
||||||
|
* При исчерпании пула адресов длина идентификатора автоматически увеличивается до **7 знаков**, затем до **8 знаков** и так далее.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Реализация
|
||||||
|
|
||||||
|
`PLACEHOLDER`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Сборка из исходного кода
|
||||||
|
|
||||||
|
`PLACEHOLDER`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Дорожная карта (TODO)
|
||||||
|
|
||||||
|
* [ ] Разработать протокол обмена сообщениями.
|
||||||
|
* [ ] Реализовать сигнальный сервер.
|
||||||
|
* [ ] Разработать TUI-клиент (терминальный интерфейс).
|
||||||
|
* [ ] Разработать GUI-клиент для ПК.
|
||||||
|
* [ ] Реализовать мобильное приложение для Android.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💝 Поддержка проекта
|
||||||
|
|
||||||
|
Понравился проект и хотите поддержать его развитие? Вы можете внести свой вклад через [DonationAlerts](https://dalink.to/palerfnaf).
|
||||||
Loading…
Reference in a new issue