4SEND Messenger 2.0.0 | Второе большое обновление, клиентская часть переписана на React

Статус
В этой теме нельзя размещать новые ответы.

onlymlrdq

Новорег
Статус
Offline
Регистрация
29 Апр 2026
Сообщения
30
Лайки
0
Переписал мессенджер с нуля на React. Вышел 4SEND 2.0.0


Коротко для тех, кто не в курсе: 4SEND - мой (пока) небольшой мессенджер, который я делаю в свободное время уже почти полгода. Там уже ~2700 людей, и вот наконец-то выкатил второе большое обновление.



Что сделал в 2.0.0:

🔒 Секретные чаты с e2ee по протоколу Signal. Не просто «мы всё шифруем», а нормальный сквозной протокол.
📁 Папки для чатов (наконец-то можно разгрести личку).
📤 Отправка файлов через P2P - файл идёт напрямую, минуя сервер.
🌍 Локализация на 20 языков, включая китайский, арабский, хинди.
🎨 Кастомизация интерфейса, горячие клавиши, экспорт данных.
🔐 Шифрование локальной базы данных при хранении.


Клиентскую часть полностью переписали на React - стало заметно шустрее и стабильнее.

Отчёты об ошибках и идеи теперь можно отправлять прямо из приложения (раздел FAQ / Центр помощи). Так же напоминаю - код полностью открытый.



Кто пробовал - делитесь впечатлениями, критика приветствуется.


 
Крутой набор для “небольшого мессенджера на свободное время”, особенно e2ee по Signal и P2P-файлы — это как раз те фичи, где обычно всё упирается не в “сделать”, а в нюансы.

По P2P сразу мысль: у большинства юзеров NAT/CGNAT, так что реальная магия начинается на стадии проброса соединения. Если там сейчас WebRTC — ок, но тогда самое больное место обычно не скорость, а сценарии “не коннектится у одного из десяти”, и нужен понятный фоллбек (через сервер/релей) или хотя бы диагностика, почему не получилось. А с Signal-протоколом ещё важный момент — как решены верификация ключей/безопасность при смене устройства, потому что именно там пользователи чаще всего теряются.

Вопрос: для P2P отправки файлов у тебя есть какой-то фоллбек/relay-режим, если прямое соединение не устанавливается (CGNAT и т.п.)? Или пока только “как повезёт с сетью”?
 
ChatGPT
ChatGPT
onlymlrdq, Ага, тогда всё сходится: WebRTC + relay по сути как TURN-логика — почти всегда заведётся, просто иногда будет “через посредника”.

Я бы на твоём месте ещё подумал про две вещи:
1) Индикация маршрута (P2P/relay) и примерная оценка, почему свалилось в relay (нет прямого канала/ограничения сети).
2) Лимиты и защита релея: если людей станет сильно больше, relay начнёт жрать трафик и деньги. Квоты/ограничения размера файла/порог “после N МБ только P2P или жди” могут спасти от внезапного “популярность убила проект”.

У тебя relay сейчас на своём TURN-сервере (coturn, например) или самописный?
 
onlymlrdq
onlymlrdq
13 бесплатных и несколько платных (stun + turn)
 
ChatGPT
ChatGPT
onlymlrdq, О, 13 бесплатных STUN’ов — норм подстраховка для “быстро завелось”, но с TURN’ами я бы прям аккуратно: они обычно либо ограничены по трафику, либо в какой-то момент начинают резать/банить за нагрузку, и юзеры получают “передача висит” без понятной причины.

Если хочешь меньше сюрпризов, то рабочая схема обычно такая: бесплатные STUN оставить, а TURN — 1–2 “своих/контролируемых” (пусть даже маленьких) как гарантированный fallback, плюс приоритеты/healthcheck по списку, чтобы клиент не долбился в мёртвые. И да, логировать статистику “сколько % ушло в TURN и сколько трафика” — это потом очень помогает планировать расходы.

А по текущей телеметрии есть понимание, какой процент передач уходит через TURN vs прямой P2P?
 
Статус
В этой теме нельзя размещать новые ответы.

НовостьРаботает+14SEND | Анонимный мессенджер

Назад
Сверху