Как стать автором
Обновить

Комментарии 5

У вас фактически инициатор выступает центральным сервером. Его временное падение фактически остановит коллаборацию для всех. Я бы предложил сделать некоторую адресную книгу, куда клиенты могли писать свои оферы. Как только один офер захвачен, создаётся новый. Таким образом любой клиент всегда будет готов принять соединение. Ну а далее возможны разные конфигурации: от переходящего лидера, до все со всеми.

У вас фактически инициатор выступает центральным сервером. Его временное падение фактически остановит коллаборацию для всех.

Да. Пока так. Планирую доработать.

Кстати, конкретно для диаграмм, вам было бы проще использовать распределённую субд, типа той, что я сейчас разрабатываю, а не вручную посылать события. Интересно было бы попробовать сделать синхронизацию через неё? Там, правда, именно WebRTC пока ещё не прикручен, но вскоре планируется.

Пока не готов. Слишком радикально.

Есть библиотека libp2p для JS/Go/Rust в которой это уже реализовано, и много чего еще. Поднимается нода на сервере (или несколько) и на каждом клиенте. Соединяются с сервером через tcp/websocket/webtransport и получают адреса уже подключившихся клиентов - с каждым можно открыть webrtc соединение. После этого про сервер можно забыть, адреса новых клиентов будут распространяться через webrtc. Можно строить сеть только для открытого документа, а можно сразу для всех клиентов приложения, а поверх нее еще одну сеть для документа. А сервер можно и в качестве TURN использовать, только там это называется Relay.
Самостоятельно это писать можно очень долго.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории