Это старая версия документа!
Сервис websocket позволяет подписаться на события и получать уведомления о наступление соответствующего события
Для получения уведомлений о наступление события фронтенд должен подключиться к сервису и отправить запрос на подписку на событий, после чего бэкенд будет отправлять сообщения с информацией о произошедшем событие
wss:{domain}}/ws
====== Запуск ======
Для запуска сервера выполнить команду на сервере:
<code bach>
airlay-cli web_socket server
</code>
====== Настройки ======
В файле config.ini
заполнить секцию webSocketEvents
, указать ip-адрес и порт:
<code bach>
[webSocketEvents]
address = 0.0.0.0
port = 8081
</code>
====== Запрос ======
==== Описание ====
<code json>
{
«auth»: «string»,
«action»: «string»,
«event»: {
«type»: «string»,
«id»: «string»
}
}
</code>
* auth - токен доступа `access_token` полученный при авторизации на airlay
* action - выполняемое действие attach/detach, подписаться/отписаться от события соответственно
* event - объект описывающий событие
* event.type - тип события, список будет приведен ниже
* event.id - ид объекта(ObjectId) связанного с событием
==== Типы событий ====
- issueUpdate - обновление задачи
- notification - оповещение об уведомление(ид не обязателен)
- datasetUpdate - обновление набора данных
==== Пример запроса ====
<code>
{
«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»
}
}
</code>
==== Ответ ====
<code>
{
«status»: int,
«message»: string,
«code»: int
}
</code>
* 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
==== Пример ответа====
<code>
{
«status»:200,
«message»:«Ok»,
«code»:0
}
</code>
<code>
{
«status»:400,
«message»:«Invalid request»,
«code»:5
}
</code>
====== Сообщения от сервера ======
==== Описание ====
<code>
{
«type»:«string»,
«id»:«string»,
«data»:«array»
}
</code>
* type - тип события
* id - ид объекта связанного с событием
* data - дополнительные дынные
==== Пример сообщения от сервера ====
<code>
{
«type»:«issueUpdate»,
«id»:«610217e481f6fc54736209e0»,
«data»:[]
}
</code>