跳到主要内容
版本:7.0.3

活动

Hunyuan 7b 中英对照 Events

通过实现Spring的ApplicationListener接口,可以发布和接收多个ApplicationContext事件:

  • BrokerAvailabilityEvent:指示代理何时变为可用或不可用。虽然“简单”代理在启动时会立即变为可用,并且在应用程序运行期间一直保持这种状态,但STOMP“代理中继”可能会与全功能代理失去连接(例如,如果代理被重新启动)。代理中继具有重新连接的逻辑,在代理恢复连接时会重新建立与“系统”的连接。因此,每当状态从连接变为断开或相反时,都会发布此事件。使用SimpMessagingTemplate的组件应订阅此事件,并避免在代理不可用时发送消息。无论如何,它们应在发送消息时准备处理MessageDeliveryException

  • SessionConnectEvent:当接收到新的STOMP CONNECT请求时发布,表示一个新的客户端会话开始。该事件包含代表连接的消息,包括会话ID、用户信息(如果有的话)以及客户端发送的任何自定义头部信息。这对于跟踪客户端会话非常有用。订阅此事件的组件可以使用SimpMessageHeaderAccessorStompMessageHeaderAccessor来处理其中包含的消息。

  • SessionConnectedEvent:在SessionConnectEvent之后不久发布,当代理响应CONNECT请求发送了STOMP CONNECTED帧时。此时,STOMP会话可以被认为是完全建立的。

  • SessionSubscribeEvent:当接收到新的STOMP SUBSCRIBE请求时发布。

  • SessionUnsubscribeEvent:当接收到新的STOMP UNSUBSCRIBE请求时发布。

  • SessionDisconnectEvent:当STOMP会话结束时发布。DISCONNECT请求可能是由客户端发送的,也可能是当WebSocket会话关闭时自动生成的。在某些情况下,这个事件可能会在一个会话中多次发布。组件应对多个断开事件具有幂等性(即多次处理不会产生不同的结果)。

备注

当使用功能齐全的代理时,如果代理暂时不可用,STOMP “代理中继”会自动重新连接“系统”连接。然而,客户端连接并不会自动重新连接。假设启用了心跳机制,客户端通常会在10秒内注意到代理没有响应。客户端需要自行实现重新连接的逻辑。