====== Описание ====== Сервис 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":[] }