У меня есть конечная точка WebSocket, настроенная так в моей реализации WebSocketConfigurer
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new ExceptionWebSocketHandlerDecorator(myWebSocketHandler), "/ws/")
.setAllowedOrigins("*")
.addInterceptors(myHandshakeInterceptor);
}
В myWebSocketHandler#beforeHandshake
есть несколько проверок, и я хотел бы отправить сообщение об ошибке пользователю в случае, если сервер решает отказаться от обновления соединения. Я пробовал это
response.setStatusCode(HttpStatus.BAD_GATEWAY);
try {
response.getBody().write("Error".getBytes());
response.getBody().flush();
} catch (IOException e) {
log.error("Error writing response", e);
}
return false;
Код состояния работает, но тело пусто. Как я могу отправить его?
РЕДАКТИРОВАТЬ: оказывается, проблема в том, что я использовал консоль Firefox, чтобы проверить ответ, и он ничего не показал мне. Если я использую cURL для того же запроса, то все работает нормально, и я вижу сообщение, которое пишу в тело ответа!