我有几个问题,如何使用 spring websockets和消息 . 所以我有一个程序与外部Web服务 生产环境 者 endpoints 连接,该 endpoints 将数据有效负载发送到我的Web服务使用者 endpoints . 在我的程序的另一端,我将这些数据有效负载路由到多个websocket连接(stomp和sockjs) . 外部Web服务 生产环境 者在每个数据有效负载中为每个查询请求提供订阅ID,因此我的方法是使用SimpMessagingTemplate将它们发送回具有自己唯一目标的代理(即/ user / / subscribe) . 这样,如果进行了重复查询,我可以将每个websocket客户端订阅到现有目的地,否则只向外部Web服务 生产环境 者请求新订阅 .
-
如何从不同的组件(例如我的Web服务使用者)中访问我的SimpMessagingTemplate,以便我可以将数据有效负载发送到我的消息代理?我只是声明我的SimpMessagingTemplate静态并在我的控制器中声明一个存储模板对象的getter函数吗?
-
如何获取所有已知目的地的列表以及每个目的地的stomp客户端订户数量?外部Web服务 生产环境 者为每个订阅设置终止时间,因此如果仍有目标订阅者,我希望实现自动续订请求 . 我想我可以使用Maps / Caches自己跟踪它并在每次打开或关闭websocket会话时更新它们,但是如果可能的话,我更喜欢使用spring来实现它,因为它可以最大限度地减少我的风险并且可能更不容易出错,或者可能是完整的像RabbitMQ或ActiveMQ这样的特色经纪人是必要的 .
1 回答
找到我需要的答案:
@Autowired private SimpMessagingTemplate
公共类SubscribeEvent实现ApplicationListener