Отправка собственного сообщения об ошибке для передачи клиенту¶
По умолчанию, если бэкенд сервер возвращает ошибку 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
. При отсутствии одного из полей, либо при добавлении других полей в объект, на клиента будет отправлено сообщение в соответствии с заголовком ответа бэкенд сервера, как и по умолчанию.