如何在spring中对websocket定制response内容

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;

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据