Files
smart-lift-docs/WebSocket.md
2024-10-02 10:53:03 +03:00

56 lines
2.7 KiB
Markdown

# WebSocket
## Подключение
Сервер предоставляет 2 url для подключения к WebSocket:
+ Для контроллера группы лифтов
```wss://{base_url}/ws/v1/controller```
+ Для клиентских приложений
```wss://{base_url}/ws/v1/client```
## Передача данных
Передача данных происходит путем отправки бинарных сообщений. Сообщение представляет из себя *json* следующей структуры:
```javascript
{
// Идентификатор типа сообщения
"type": "auth",
// Данные соответствующие типу сообщения
// !!!Формат данных различен для сообщений с одинаковым типом на разных url
"data": "token"
}
```
:boom: Внимание!!!
Формат данных различен для сообщений с одинаковым типом на разных [url](#%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5), кроме сообщения [auth](#%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F)
* [Описание сообщений контроллера](./WebSocket-ControllerMessages.md)
* [Описание сообщений клиента](./WebSocket-ClientMessages.md)
## Авторизация
Авторизация происходит путем отправки сообщения [auth](#auth) сразу после установки соединения. Если сервер не получает сообщение в течении **10** сек после подключения, то соединение закрывается. Так же соединение закрывается, если первое сообщение после соединения не соответствует формату сообщения [auth](#auth). Все последующие отправки данного сообщения игнорируются.
```javascript
{
// Тип сообщения
"type": "auth",
// Для контроллера *api_key*, созданный при добавлении группы в БД
// Для клиента *access_token*, полученный после авторизации.
"data": "<access_token|api_key>"
}
```
При успешной авторизации сервер присылает сообщение:
```javascript
{
"type": "auth",
"data": true
}
```
При неуспешной авторизации соединение закрывается c кодом закрытия **1008**