websocket在目前web中使用很广泛,比如在升级、系统监控等方面,使用起来很方便。避免了频繁向后端请求数据,造成了服务器资源的浪费。有时候我们对于一个websocket连接请求,需要定制特定的response body内容,那么如何在spring中对websocket定制response内容呢。
先说下场景:
1.有一个WebSocket endpoint ,大概如下代码所示:
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(new ExceptionWebSocketHandlerDecorator(myWebSocketHandler), "/ws/") .setAllowedOrigins("*") .addInterceptors(myHandshakeInterceptor); }
在myWebSocketHandler#beforeHandshake中有一些检查项,用来在某些场景下给用户反馈拒接连接的response,我想把消息放到response body中,大概如下代码所示:
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;
发表回复