我正在尝试使用 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) 以保持连接有效。
我看过 …