Spring 当 spring-web 存在时,Reactive WebSocket 不会出现

Spring Reactive WebSocket does not come up when spring-web is present

我有一个现有的 spring Web 应用程序,它使用 spring-boot-starter-web;我一直在计划将反应引入到这个应用程序中。对于我正在使用的一项新功能,我引入了 spring 反应式网络套接字,按照 spring 文档中的规定进行配置和编码;但不幸的是它不起作用(得到 404)。 我尝试了一个示例应用程序,效果很好。 我使用这个 one 作为我的示例应用程序。

我发现示例应用程序出现在 Netty 上,而不是 Tomcat。所以我向它添加了 spring-boot-starter-web,让服务器在 Tomcat 中启动,并得到了与我在应用程序中得到的相同的 404。 我还添加了 TomcatRequestUpgradeStrategy 失败。

我是否应该假设 spring-web 和 spring-webflux 相互冲突并且我应该回到常规的 websocket?请指教

Spring 表示如果 spring web 和 spring webflux 都存在于类路径中; spring 网络启动,反应式 websocket 不会出现。 此处有更多详细信息:https://github.com/spring-projects/spring-boot/issues/23236