Skip to content

Дудка 0.7.0

Choose a tag to compare

@kucheruk kucheruk released this 29 Jul 10:21
· 68 commits to master since this release

Добавлено

  • Веб-Дудка на zamoo.team: две вкладки одного домашнего подключения
    автоматически находят друг друга через узкий сигнальный сервис Студии, затем
    передают текст и файлы напрямую по WebRTC.
  • До подключения показано обязательное объяснение: кто выходит в интернет,
    куда, зачем, какие данные видит сервис и сколько живёт соединение. Без
    явного разрешения WebSocket и WebRTC не запускаются.
  • Сигнальный сервис группирует только одновременно открытые вкладки по
    публичному IPv4, хранит состояние в памяти и принимает только служебные
    offer, answer и ICE. Сообщения, имена, файлы и история через него запрещены.
  • Веб-интерфейс показывает себя в соседях, считает ОНЛАЙН 1/2, хранит до 200
    текстовых сообщений только в браузере и умеет копировать диагностику ошибки.
  • Файлы остаются черновиками до отправки, имеют thumbnail, передаются чанками
    и скачиваются с исходным именем и расширением.

Исправлено

  • Служебный WebSocket поддерживается heartbeat-пакетами и автоматически
    подключается повторно после обрыва. В диагностике видны код закрытия и
    состояния WebRTC/ICE без IP, имён и сообщений.
  • Мобильный браузер всегда получает свежий index.html; адреса JavaScript,
    CSS и иконки зависят от SHA-256 содержимого. Hard refresh после обновления
    больше не нужен.
  • Собственный STUN Студии помогает Safari на iPhone и desktop-браузеру
    согласовать прямой WebRTC-канал. STUN видит только IP и UDP-порт; TURN,
    пересылки сообщений и файлов через сервер нет.
  • Кнопка диагностики доступна всегда и показывает только типы кандидатов и
    состояния соединения, без сетевых адресов. Убран автоматический ICE-restart:
    он смешивал кандидатов двух ICE-сессий и ломал согласование ошибкой
    Unknown ufrag.
  • Уже открытая вкладка получает события входа и выхода соседей. Инициатора
    WebRTC выбирают одинаково на обеих сторонах, поэтому новые участники
    достраивают mesh без гонки двух offer. Временный disconnected больше не
    удаляет соседа немедленно.
  • Safari явно сериализует SDP и ICE-кандидаты перед отправкой в signaling.
    Раньше RTCIceCandidate мог превратиться в пустой объект, поэтому вкладки
    согласовывали offer/answer, но не получали адреса друг друга.
  • Браузерный тест воспроизводит Safari-сериализацию пустым toJSON и проверяет
    двусторонний текст, а не только отправку в одну сторону.

SHA-256

117d7b8e2bfbb3a1515e30c91001c6fbe6a5dc678c6b41e32301f5148a5f68ac  dudka-macos-universal.dmg
248f074a0f25062d15d32b8d16e46ec31e6fde0c8a20091aa332253bab3e5ceb  dudka-macos-universal.zip
4e55a979837b5d79c2ea8c49bd1ae19fb8c98d68dac8cec718d9557f1076f089  dudka-windows-amd64.zip
6bf904cde89931bd1df1dd6d164f4d50effb866d989f8ee9ab9ad6a0a2de8de9  dudka-linux-amd64.tar.gz
6e8b3de2f9b69257a835dfa0fed60de78facefaafd13ba5f3786a77aba0ce96a  install.sh