56 lines
2.7 KiB
Markdown
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**
|