Spring中具有相同映射的不同websocket端点

时间:2018-10-02 14:03:58

标签: java spring websocket spring-websocket spring-messaging

我正在使用websockets开发Spring应用程序。最近,我遇到了一项在我的应用程序中支持多个端点的任务。 我注册了端点,说:
@MessageMapping("route")
而且我希望两个端点都应具有子路由相同但实现不同的方法。
当我有单个websocket终结点时,我只需将方法添加以@RequestMapping("/api/v1")注释的方法到我的rest控制器。现在,我尝试创建2个专门用于websocket方法的新控制器,我创建了2个Java类,并分别将其注释为@RequestMapping("/api/v2")@MessageMapping("route") public void foo() { log.debug("foo %version% called"); // v1 or v2 } ,并在其中的每个内部创建方法

MessageHeaders

但是在这种情况下,Spring由于模棱两可的映射而无法运行应用程序,并在启动时引发异常。

我也尝试访问方法内部的完整路由,但是找不到解决方法(我尝试查看ApplicationListener)。

在我的应用中,我还实现了WebSocketListener implements ApplicationListener<AbstractSubProtocolEvent>

ngOnChanges

可以捕获踩踏事件并断开连接,但是这里也没有有关该路由的完整信息。

那么,我如何实现这种行为:不同的子路由使用不同的方法,但脚踩映射相同?

0 个答案:

没有答案