Интерактивная документация и песочница для WebSocket API анонимного чата
user:join с именем — получите userIdroom:create) или войдите по инвайт-коду (room:join)message:send), получайте через message:newroom:history
user:join с указанным именем.| Параметр | Значение | Описание |
|---|---|---|
Rate limit | 30 / 10 сек | Максимум событий на один сокет за 10 секунд |
Имя | 1-50 символов | Trim + валидация длины |
Сообщение | 1-5000 символов | Trim + валидация длины |
История | 1-100 / запрос | Параметр limit, по умолчанию 50 |
DIRECT комната | макс 2 участника | Третий получит ошибку |
Членство | проверяется | Нельзя писать/читать чужие комнаты |
Авторство | проверяется | Редактировать/удалять может только автор |
Очистка | каждый час | Комнаты без сообщений 2 недели — удаляются |
Удаление | мягкое | isDeleted=true, контент очищается |
Аутентификация. Отправьте сразу после подключения. Сервер создаёт нового пользователя или находит существующего по userId. При переподключении автоматически возвращает во все комнаты.
| Параметр | Тип | Описание |
|---|---|---|
name | string | обязательно Имя, 1-50 символов |
userId | string | необязательно UUID из прошлой сессии |
Вызывается автоматически при нажатии "Подключиться".
Создать комнату. Вы становитесь первым участником. Возвращает inviteCode для приглашения.
| Параметр | Тип | Описание |
|---|---|---|
type | "DIRECT" | "GROUP" | обязательно |
name | string | необязательно |
Войти в комнату по инвайт-коду. Если уже участник — вернёт комнату без дублирования. Остальные получат room:joined.
| Параметр | Тип | Описание |
|---|---|---|
inviteCode | string | обязательно 10-символьный код |
Список ваших комнат. Без параметров.
Ответ:История сообщений с курсорной пагинацией. Хронологический порядок (старые сначала). Только для участников.
| Параметр | Тип | Описание |
|---|---|---|
roomId | string | обязательно |
cursor | string | необязательно ISO-дата из предыдущего ответа |
limit | number | необязательно 1-100, по умолчанию 50 |
Отправить сообщение. Только для участников комнаты. Статус: DELIVERED если есть онлайн-получатели, иначе SENT. Сообщение прилетит всем участникам комнаты (включая отправителя и его другие вкладки) через message:new.
| Параметр | Тип | Описание |
|---|---|---|
roomId | string | обязательно |
content | string | обязательно 1-5000 символов |
Редактировать своё сообщение. Нельзя редактировать удалённые. Все участники комнаты (включая отправителя) получат message:updated.
| Параметр | Тип | Описание |
|---|---|---|
messageId | string | обязательно |
content | string | обязательно 1-5000 символов |
Мягкое удаление своего сообщения. Все участники комнаты (включая отправителя) получат message:deleted.
| Параметр | Тип | Описание |
|---|---|---|
messageId | string | обязательно |
Отметить сообщение как прочитанное. Без callback. Когда все участники прочитали — статус меняется на READ и все получают message:status. Игнорируется для своих сообщений.
| Параметр | Тип | Описание |
|---|---|---|
messageId | string | обязательно |
Индикатор набора. Сервер автоматически отправит typing:stop через 3 секунды. Остальные получат события с вашим именем.
| Параметр | Тип | Описание |
|---|---|---|
roomId | string | обязательно |
Подписка на Web Push уведомления. Работает если на сервере настроены VAPID-ключи. Публичный ключ: GET /push/vapid-key.
| Параметр | Тип | Описание |
|---|---|---|
endpoint | string | обязательно Push endpoint |
p256dh | string | обязательно Ключ шифрования |
auth | string | обязательно Секрет |
Приходят автоматически. Отображаются в журнале справа.
Новое сообщение в комнате. Приходит всем участникам включая отправителя — добавляйте сообщение в UI прямо отсюда. Ack события message:send возвращает только { ok, id }, без payload.
Сообщение отредактировано. Приходит всем включая автора. Замените по id. Если updatedAt !== createdAt — покажите "изменено".
Сообщение удалено. Приходит всем включая автора. Покажите заглушку "Сообщение удалено", не удаляйте из списка.
Статус доставки изменился. Обновите статус сообщения в UI.
Кто-то печатает. Покажите "имя печатает...". Автостоп через 3 сек.
Перестал печатать. Уберите из индикатора.
Кто-то присоединился к вашей комнате. Обновите memberCount.
Ошибка сервера. Приходит при rate limit, внутренних ошибках и т.д.
| Метод | Путь | Описание |
|---|---|---|
GET | /health | Статус сервера и БД. Ответ: { status, push } |
GET | /push/vapid-key | Публичный VAPID-ключ для Web Push |
GET | /docs | Эта страница |