package com.iailab.framework.websocket.core.sender.rabbitmq; import lombok.RequiredArgsConstructor; import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.*; /** * {@link RabbitMQWebSocketMessage} 广æ’消æ¯çš„消费者,真æ£æŠŠæ¶ˆæ¯å‘é€å‡ºåŽ» * * @author iailab */ @RabbitListener( bindings = @QueueBinding( value = @Queue( // 在 Queue çš„åå—上,使用 UUID 生æˆå…¶åŽç¼€ã€‚è¿™æ ·ï¼Œå¯åŠ¨çš„ Consumer çš„ Queue ä¸åŒï¼Œä»¥è¾¾åˆ°å¹¿æ’消费的目的 name = "${iailab.websocket.sender-rabbitmq.queue}" + "-" + "#{T(java.util.UUID).randomUUID()}", // Consumer å…³é—时,该队列就å¯ä»¥è¢«è‡ªåŠ¨åˆ 除了 autoDelete = "true" ), exchange = @Exchange( name = "${iailab.websocket.sender-rabbitmq.exchange}", type = ExchangeTypes.TOPIC, declare = "false" ) ) ) @RequiredArgsConstructor public class RabbitMQWebSocketMessageConsumer { private final RabbitMQWebSocketMessageSender rabbitMQWebSocketMessageSender; @RabbitHandler public void onMessage(RabbitMQWebSocketMessage message) { rabbitMQWebSocketMessageSender.send(message.getSessionId(), message.getUserType(), message.getUserId(), message.getMessageType(), message.getMessageContent()); } }