小编Seb*_*ian的帖子

Spring websocket 30分钟后自动关闭(超时)

我正在尝试使用 Spring Boot (1.5.13) 实现一个 websocket。

消息传递工作正常,但大约 30 分钟后连接被服务器终止(原因 1008 -“此连接是在已结束的经过身份验证的 HTTP 会话下建立的”)。我尝试设置不同的超时,但似乎没有任何效果。

@Service
@RequiredArgsConstructor
@Slf4j
public class OCPPSocketHandler extends TextWebSocketHandler {
    @Override
    public void handleTextMessage(WebSocketSession webSocketSession, TextMessage textMessage)
        throws IOException {
      ...
    }
}

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {

    public static final String ENDPOINT = "/pp/v2.0";

    @Autowired
    private CustomSocketHandler socketHandler;

    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(
            new CustomExceptionWebSocketHandlerDecorator(socketHandler), ENDPOINT
        )
        .setAllowedOrigins("*");
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序属性:

#6h as milliseconds
server.connection-timeout=3600000 
server.servlet.session.timeout=6h
Run Code Online (Sandbox Code Playgroud)

每 30 分钟发送一次 TextMessage (WebSocket) 以保持连接有效。

我看过 …

java websocket spring-boot

5
推荐指数
1
解决办法
6861
查看次数

标签 统计

java ×1

spring-boot ×1

websocket ×1