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