跳到主要内容
版本:7.0.3

消息顺序

Hunyuan 7b 中英对照 Order of Messages

来自代理的消息被发布到clientOutboundChannel,然后从那里写入WebSocket会话中。由于该通道由ThreadPoolExecutor支持,消息在不同的线程中处理,因此客户端接收到的消息顺序可能与发布的实际顺序不完全一致。

要启用有序发布,请按以下方式设置 setPreservePublishOrder 标志:

@Configuration
@EnableWebSocketMessageBroker
public class PublishOrderWebSocketConfiguration implements WebSocketMessageBrokerConfigurer {

@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
// ...
registry.setPreservePublishOrder(true);
}

}

当该标志被设置时,同一客户端会话中的消息将依次发布到 clientOutboundChannel,从而保证发布的顺序。请注意,这会带来一定的性能开销,因此只有在确实需要的情况下才应启用该功能。

同样的规则也适用于来自客户端的信息,这些信息会被发送到clientInboundChannel,然后根据消息的目的前缀来处理。由于该通道是由ThreadPoolExecutor支持的,因此消息是在不同的线程中处理的,因此处理顺序可能与接收顺序不完全一致。

要启用有序接收,请按以下方式设置setPreserveReceiveOrder标志:

@Configuration
@EnableWebSocketMessageBroker
public class ReceiveOrderWebSocketConfiguration implements WebSocketMessageBrokerConfigurer {

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.setPreserveReceiveOrder(true);
}
}