Как подключиться к раунду
Подключиться к раунду можно с помощьюwebSocket по API /ws/rounds/{id} по ID раунда.
При первом подключении, необходимо сразу отправить
json объект с access_token юзера в параметре token.токен не передан, сервер вернет ошибку и завершит websocket соединение
токен, сервер вернет ошибку и завершит websocket соединение
токен, но юзера в него не приглашали, сервер вернет ошибку и закроет websocket соединение
токен, сервер отправит ивент participant_connected и participant_update
Статусы и ивенты
Статусы раундов и участников

Основные ивенты

Как отправлять ивенты на сервер
Каждая отправка ивента с клиента сопровождаетсяjson сообщением с type ивента и параметрами data с token и другими.
Как принимать ивенты с сервера
Каждая отправка ивента с сервера сопровождаетсяjson сообщением с type и message.
Ивенты, которые отправляет сервер
Participant connected
Название ивентаparticipant_connected
Отправляется при первом подключении юзера. Отправляется всем участникам.
Отправляет json
participant_update.
Participant disconnected
Название ивентаparticipant_disconnected
Отправляется при разрыве websocket соединения. Отправляется всем участникам, кроме текущего.
- Отключает юзера от
webscocket - Изменяет статус юзера на
WAITING - Отправляет ивент
participant_disconnected - Отправляет ивент
participant_update
json
Participant update
Название ивентаparticipant_update
Отправляется при изменении статуса готовности юзера, удалении или добавлении юзера из раунда. Отправляется всем участникам.
Отправляет json
Round countdown
Название ивентаround_countdown
Отправляется, когда все участники имеют статус READY, для перехода на экран таймера. Отправляется всем участникам.
Отправляет json
Round question
Название ивентаround_question
Отправляется, когда время таймера истекло, для перехода на экран вопроса. Отправляется всем участникам.
Отправляет json
Round results
Название ивентаround_results
Отправляется, когда все участники ответили на вопрос или таймер ответа на вопрос закончился, для перехода на экран результатов. Отправляется всем участникам.
Отправляет json
Chat history
Название ивентаchat_history
Отправляется, когда участник открывает чат для загрузки сообщений в ответ на ивент participant_open_chat. Отправляется только конкретному участнику.
Отправляет json
New message
Название ивентаnew_message
Отправляется, когда участник отправил сообщение в чат в ответ на ивент chat_message. Отправляется всем участникам.
Отправляет json
Ивенты, которые отправляет клиент
Participant update
Ивент, который вызывается для обновления основных данных участников, таких как:name, phone, id, status.
В основном срабатывает при первом подключении каждого пользователя и при смене статуса участника на READY или NOT_READY
Во всех ивентах, сервер ожидает
token юзера в data параметреparticipant_update
JSON BODY
Round Countdown End
Отправляется, когда время таймера истекло. Название ивентаround_countdown_end
Пример
Round Question End
Отправляется, когда время таймера для ответа на вопрос истекло. Название ивентаround_question_end
Пример
Participant answered
Отправляется, когда участник ответил на вопрос в викторине.Время ответа участника передается строго в формате mm:ss.SSS (22:45.343) с учётом времени до тысячных долей секунды.
participant_answered
JSON BODY
round_results с результатами раунда для перехода на экран результатов.
Participant open chat
Отправляется конкретному участнику, когда он открыл окно чата для получения сообщений. Название ивентаparticipant_open_chat
Пример
chat_history с массивом сообщений:
Chat message
Отправляется всем участникам, когда один из них отправляет сообщение в чат. Название ивентаchat_message
Пример
new_message с массивом сообщений:
Коды ошибок
Сервер может отправлять ошибки в виде сообщений с типомerror, а также закрывать соединения с определенными WebSocket кодами. Вот список возможных кодов и ошибок: