Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 56 additions & 23 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,42 +1,75 @@
# Binaries for programs and plugins
*.exe
*.dll
*.so
*.dylib
# Flutter/Dart specific ignores
.dart_tool/
.packages
.pub-cache/
build/
ios/.symlinks/
lib/generated/
test/**/generated/**

*.mod
*.sum
*.mp4
# Logs and temp files
*.log
*.tmp

*.db

# Test binary, built with `go test -c`
*.test

# Output of the go toolchain
*.out
# Environment variables
.env
.env.local
*.env.*

# Dependency directories (remove the "vendor/" if you want to commit it)
vendor/
# Logs
*.log
**/*.log

# Go module cache
.mod/
# OS generated files
.DS_Store
Thumbs.db

# IDE specific files
# IDE specific
.vscode/
.idea/
*.swp
*.swo

# Log files
*.log

# macOS specific files
# OS
.DS_Store
Thumbs.db

# Windows specific files
thumbs.db
# Coverage
coverage/
htmlcov/
.coverage

# исполняемые файлы
cu-bridge
cu-bridge.exe
cu-bridge-linux
cu-bridge-mac
builds/
builds/
storage/

# Compressed files
*.zip
*.gz
*.tar
*.tgz
*.bz2
*.xz
*.7z
*.rar
*.zst
*.lz4
*.lzh
*.cab
*.arj
*.rpm
*.deb
*.Z
*.lz
*.lzo
# Build outputs
*.js
*.map
81 changes: 77 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,86 @@
Чтобы запустить надо написать
# Mesh-CU Messenger

Распределённая P2P мессенджер система с поддержкой веб-интерфейса на Flutter.

## Запуск

### Backend (Go node)

```bash
go run ./cmd/node/ -name [ur name]
go run ./cmd/node/ -name [your name] -port 8080
```
### Флаги:
* `-name` - имя пользователя (если не указывать, то генерится само)
* `-port` - порт (по умолчанию: 8080)
* `-storage` - путь до папки, сохранение

После запуска backend также стартует WebSocket API сервер на порту **8765** для подключения веб-клиентов.

### Frontend (Flutter Web)

```bash
cd flutter_app
flutter pub get
flutter run -d chrome
```

Или откройте `http://localhost:8765` в браузере после сборки.

## Управление (CLI)

Управление:
* `/chat [nick-name]` - открыть чат/группу с определенным человеком
* `/new messages` - список чатов/групп c непрочитанными сообщениями
* `/all` - список всех чатов/групп
* `/create -name [group name] -parts [nick1, nick2, ...]` - создать группу с участниками
* `/help` - показать справку

## Архитектура

- **Backend (Go)**: TCP server для P2P сообщений, UDP multicast для discovery, SQLite для хранения
- **API**: WebSocket сервер для подключения веб-клиентов
- **Frontend (Flutter)**: Веб-интерфейс с реальным временем обновлений

## Структура проекта

```
.
├── cmd/node/ # Точка входа Go приложения
├── internal/
│ ├── api/ # WebSocket API для Flutter
│ ├── db/ # SQLite база данных
│ ├── discovery/ # Peer discovery через UDP multicast
│ ├── network/ # TCP сервер для P2P сообщений
│ └── protocol/ # Формат сообщений
├── flutter_app/ # Flutter веб-приложение
│ ├── lib/
│ │ ├── models/ # Модели данных
│ │ ├── services/ # WebSocket сервис
│ │ ├── screens/ # UI экраны
│ │ └── widgets/ # UI компоненты
│ └── web/ # Web entry point
└── README.md
```

## Протокол

Сообщения передаются в формате JSON через TCP/WebSocket:

```json
{
"type": "CHAT",
"sender_id": "node-123",
"sender_name": "Alice",
"recipient_id": "ALL",
"payload": {
"message": "Hello!",
"sender_name": "Alice"
}
}
```

### Типы сообщений

и откроется чат))
- `PING`/`PONG` - проверка соединения
- `CHAT` - текстовое сообщение
- `GROUP_CREATE` - создание группы
- `FILE_REQ`/`FILE_CHUNK`/`FILE_ACK` - передача файлов
7 changes: 0 additions & 7 deletions cmd/node/console_unix.go

This file was deleted.

16 changes: 0 additions & 16 deletions cmd/node/console_windows.go

This file was deleted.

Loading