Совместная работа
WebSocket, SSE, присутствие, чаты, CRDT, Yjs, общие документы, доски, синхронизация и восстановление соединения.
Материалы
- Прикладные веб-проекты: 100 уроков
Семь последовательных серий: чат, Redis, CMS, магазин, бронирование, расширение браузера и карты.
- WebSocket и SSE: чат поддержки «Линия»
16 уроков о комнатах, правах, подтверждениях и восстановлении чата.
- Чат на WebSocket: договор сообщений и учебная идентичность
Описать события, команды и границу учебного входа.
- Чат на WebSocket: HTTP-каркас чата поддержки
Раздать страницу и создать локальную сессию через HTTP.
- Переключение HTTP на WebSocket
Проверить Origin и сессию до handleUpgrade.
- Состояния браузерного WebSocket
Связать форму с открытием и закрытием соединения.
- Чат на WebSocket: проверка входящих сообщений
Отделить допустимую команду от произвольного JSON.
- Чат на WebSocket: комнаты обращений
Направить сообщение только участникам выбранной комнаты.
- Чат на WebSocket: права участника обращения
Проверять доступ к комнате на каждой команде.
- Чат на WebSocket: идентификатор команды и подтверждение
Связать отправку с серверным подтверждением принятия.
- Чат на WebSocket: журнал сообщений и история комнаты
Сохранить ограниченный журнал и вернуть его при входе.
- Чат на WebSocket: порядок сообщений и повторная команда
Использовать номер комнаты и окно подавления дублей.
- Чат на WebSocket: переподключение и восстановление истории
Продолжить журнал по эпохе и курсору после разрыва.
- Чат на WebSocket: присутствие и проверка живого соединения
Разделить присутствие пользователя и исправность сокета.
- Уведомления через Server-Sent Events
Передать одностороннее уведомление отдельным HTTP-потоком.
- Чат на WebSocket: медленный клиент и пределы буфера
Ограничить накопление данных и частоту команд.
- Чат на WebSocket: доступный интерфейс переписки
Сделать состояния, журнал и управление понятными с клавиатуры.
- Чат на WebSocket: остановка чата и границы сопровождения
Закрыть потоки и сформулировать контракт учебного сервера.
- Совместный редактор «Черновик» на Yjs
Последовательная серия из 12 уроков с развивающимся локальным проектом и отдельными состояниями исходного кода.
- Документ Yjs и общий текст
Локальный Y.Doc с именованным Y.Text
- Yjs: связывание Y.Text с текстовым полем
Изменение только затронутого диапазона и обработка composition
- Yjs: транзакции и происхождение изменений
Групповая операция и origin для локального ввода
- Yjs: двоичные обновления и слияние
Обмен update между двумя независимыми документами
- Yjs: участники и awareness
Эфемерное состояние участников с отдельным жизненным циклом