# 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": "" } ``` При успешной авторизации сервер присылает сообщение: ```javascript { "type": "auth", "data": true } ``` При неуспешной авторизации соединение закрывается c кодом закрытия **1008**