Spring STOMP-事件

有几个ApplicationContext事件被发布,可以通过实现Spring的ApplicationListener接口来接收事件:

  • BrokerAvailabilityEvent:表示代理何时可用或不可用。虽然“简单”代理在应用启动时立即可用,并在应用程序运行时保持可用状态,但STOMP“代理中继”可能会失去与外部代理的连接(例如,如果代理重新启动)。代理中继具有重连逻辑,并在外部代理恢复时,重新建立到外部代理的“系统”连接。因此,每当状态从连接变为断开,或断开到连接时,都会发布这个事件。使用SimpMessagingTemplate的组件应该订阅这个事件,并避免在外部代理不可用时发送消息。无论如何,在发送消息时,它们应该准备好处理MessageDeliveryException
  • SessionConnectEvent:当接收到新的STOMP CONNECT时发布该事件,表示新的客户端会话开始。该事件包含代表连接的消息对象,包括会话ID、用户信息(如果有)以及客户端发送的任何自定义标头。这对于跟踪客户端会话非常有用。订阅此事件的组件可以使用SimpMessageHeaderAccessorStompMessageHeaderAccessor包装事件里包含的消息。
  • SessionConnectedEvent:当代理发送 STOMP CONNECTED 帧以响应 CONNECT 时,在 SessionConnectEvent 后不久发布该事件。至此,STOMP会话就可以认为完全建立了。
  • SessionSubscribeEvent:当接收到新的STOMP SUBSCRIBE时发布。
  • SessionUnsubscribeEvent:当接收到新的STOMP UNSUBSCRIBE时发布。
  • SessionDisconnectEvent:当STOMP会话结束时发布。DISCONNECT可能是从客户端发送的,也可能是在WebSocket会话关闭时自动生成的。在某些情况下,每个会话可能会多次发布此事件。组件应该能够对多个断开事件保持幂等。

当你使用外部代理时,如果代理暂时不可用,STOMP“代理中继”会自动重连“系统”连接。然而,客户端连接不会自动重连。假设心跳已启用,客户端通常会在10秒内注意到代理没有响应。客户端需要实现自己的重连逻辑。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李昂的数字之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值