====== Описание ======
Сервис websocket позволяет подписаться на события и получать уведомления о наступление соответствующего события
Для получения уведомлений о наступление события фронтенд должен подключиться к сервису и отправить запрос на подписку на событий, после чего бэкенд будет отправлять сообщения с информацией о произошедшем событие
====== Адрес веб сокета ======
wss://{domain}/ws
====== Запуск ======
Для запуска сервера выполнить команду на сервере:
airlay-cli web_socket server
====== Настройки ======
В файле ''config.ini'' заполнить секцию ''webSocketEvents'', указать ip-адрес и порт:
[webSocketEvents]
address = 0.0.0.0
port = 8081
====== Запрос ======
==== Описание ====
{
"auth": "string",
"action": "string",
"event": {
"type": "string",
"id": "string"
}
}
* auth - токен доступа `access_token` полученный при авторизации на airlay
* action - выполняемое действие attach/detach, подписаться/отписаться от события соответственно
* event - объект описывающий событие
* event.type - тип события, список будет приведен ниже
* event.id - ид объекта(ObjectId) связанного с событием
==== Типы событий ====
- issueUpdate - обновление задачи
- notification - оповещение об уведомление(ид не обязателен)
- datasetUpdate - обновление набора данных
- uploadFile - завершение загрузки в набор данных
- downloadFile - завершение скачивания объектов или отчетов
==== Пример запроса ====
{
"auth": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE3MTE3MDkxMTYsImp0aSI6Ik5sWXFmbEcycmtnNmZiWVFXN3pidUJLNGtyamxMY0ovejNNMTNPandKS2c9IiwiaXNzIjoiZGV2LmFpcmxheS5ydSIsImV4cCI6MTcxMTcxNjMxNiwiZGF0YSI6eyJuYW1lIjoiYS5rYWxpbmluIiwiaWQiOiI1ZGFkNjE1ZWFlMDE5NTcwZmI0NjQ3ZWQifX0.mMvDastDK4tuwLhdPv2sMMdBI42iV2yyi6ASiwiW1VcZumS-7Qpf2BMZ_QQlImd0n6NJvuZrKyJF_Hf3THKhEaiV17mdmSmjKjKK-WZAPClle28SrwCQU64neztvcdW6Twv2O4GrWanvwTkqTcoFdIcYuBrbHwubrO4Dt_EtDKw_ntrULnzqXboKa_SXiTzN6skerILgAxUpSD1c8yWh6KyqxyabNY88mwSuCC-iK-TJFLDpQW8C7bdHOoS4ikvnQIT8ByY5e1P6oxQkvZSrpxrC185yHmblNBjJLpLN1XneFpDqg9PggLeXcyddQ9gjimh6je5Z9gC8yLmXnhFlGgstIn9aNP6uUe589E4cIS-LaCUK3IBQ1HnbBiV9dYExnWIaNbBmsIIjRHUgbqSbtfLdEjctBO9aZrOuTRajgIN4Gc17Ny0yFbuy5We1GsYOIB3gQHshGbzLeFL_20bvkqjY4pZUTOHotNSa4nqO1MhFmiAyqrP3gQ7SHojRXP-dXIVe5rCdEaK-w1eVx97SuqdkJPl3Qi52t7-7bX2FVY2RYeg-yTodwW5nCTFF1Hi9oNKW8qzahyWWzbhaXVpecJtXT10564t12iug968oz0Z-5SvVr3JcGSR3MTBTZ45kWn6LoU_3gzi2rpNuX_jX2U_lbMPRxKyc1qkpjJiESlc",
"action": "attach",
"event": {
"type": "issueUpdate",
"id": "610217e481f6fc54736209e0"
}
}
==== Ответ ====
{
"status": int,
"message": string,
"code": int
}
* status - статус ответа 200/400
* message - сообщение "Ок"/"Сообщение об ошибке"
* code - код ошибки
==== Статусы ответа ====
* 200 - запрос выполнен корректно
* 400 - возникла ошибка при обработке запроса
==== Коды ошибок ====
* 1 - Token not set
* 2 - Invalid token
* 3 - User not exists
* 4 - Not access for dataset
* 5 - Inavlid request
==== Пример ответа====
{
"status":200,
"message":"Ok",
"code":0
}
{
"status":400,
"message":"Invalid request",
"code":5
}
====== Сообщения от сервера ======
==== Описание ====
{
"type":"string",
"id":"string",
"data":"array"
}
* type - тип события
* id - ид объекта связанного с событием
* data - дополнительные дынные
==== Пример сообщения от сервера ====
{
"type":"issueUpdate",
"id":"610217e481f6fc54736209e0",
"data":[]
}