Перейти к содержанию

Отправка собственного сообщения об ошибке для передачи клиенту

По умолчанию, если бэкенд сервер возвращает ошибку 4xx на метод /connect или /publish (или другой метод прямого вызова), сообщение для отправки клиенту берется из заголовка ответа. Например, при ответе на /connect

HTTP/1.1 403 Forbidden
Date: Tue, 01 Jun 2021 04:49:40 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
X-Powered-By: PHP/5.4.16
Content-Length: 44
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive

клиенту будет отправлено Websocket сообщение

{
  "message": "fail",
  "data": [{
    "status": "FAILED",
    "info": "Forbidden",
    "apiMethod": "ConnectionStatusEvent"
  }]
}

В сборке 5.2.968 добавлена возможность вернуть собственное сообщение об ошибке в этом случае. Для этого бэкенд сервер должен вернуть следующий JSON объект

HTTP/1.1 403 Forbidden
Date: Tue, 01 Jun 2021 04:49:40 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
X-Powered-By: PHP/5.4.16
Content-Length: 44
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json

{
  "status":403,
  "reason":"Wrong credentials"
}

Клиенту будет отправлено сообщение

{
  "message": "fail",
  "data": [{
    "status": "FAILED",
    "info": "Wrong credentials",
    "apiMethod": "ConnectionStatusEvent"
  }]
}

JSON объект должен содержать только поля status и reason. При отсутствии одного из полей, либо при добавлении других полей в объект, на клиента будет отправлено сообщение в соответствии с заголовком ответа бэкенд сервера, как и по умолчанию.