使用 websocket 连接使 Spring 引导应用程序保持活动状态

Keep Spring Boot application alive with websocket connection

我的 Spring 启动应用程序非常小,只有一项工作:通过打开与第三方网站的 websocket 连接充当客户端并侦听消息。

问题是在我的 javax.websocket.Endpoint 实现初始化并创建连接后,我的 Spring 启动应用程序关闭。

我原以为任何打开的 websocket 连接都会让我的应用程序保持运行 运行?

我不需要嵌入式 servlet 容器,所以我在 application.yaml 中专门设置了 web-environment: false

有没有办法在不添加我永远不会使用的 servlet 容器的情况下解决这个问题?

你可以简单地循环下去。

while (true) {}

我通过使用 OkHttpClient 并在我的 @Configuration 中用 @PostConstruct 初始化它来解决这个问题。我用 @Component 注释了侦听器,它现在不需要嵌入式 servlet 容器就可以保持活动状态。