Browse Source

mq接受消息

master
zhangye 6 years ago
parent
commit
1b49db8ed8
  1. 2
      game/src/main/java/com/ccsens/game/service/IMessageService.java
  2. 10
      game/src/main/java/com/ccsens/game/service/MessageService.java
  3. 45
      game/src/main/java/com/ccsens/game/service/RabbitMQListener.java
  4. 5
      util/src/main/java/com/ccsens/util/config/RabbitMQConfig.java

2
game/src/main/java/com/ccsens/game/service/IMessageService.java

@ -13,5 +13,7 @@ public interface IMessageService {
void doAuthMessageWithAuth(ChannelHandlerContext ctx, AuthMessageDto message);
void doChangeStatusMessageDto(GameMessageWithChangeStatusOut gameMessage);
void doChangeStatusMessage(GameMessageWithChangeStatusOut gameMessageWithChangeStatusOut);
}

10
game/src/main/java/com/ccsens/game/service/MessageService.java

@ -92,4 +92,14 @@ public class MessageService implements IMessageService {
}
}
}
@Override
public void doChangeStatusMessage(GameMessageWithChangeStatusOut gameMessage) {
List<BaseMessageDto.MessageUser> messageUserList = gameMessage.getReceivers();
if(CollectionUtil.isNotEmpty(messageUserList)){
for(BaseMessageDto.MessageUser messageUser : messageUserList){
sendTo(messageUser.getUserId().toString(),gameMessage);
}
}
}
}

45
game/src/main/java/com/ccsens/game/service/RabbitMQListener.java

@ -0,0 +1,45 @@
package com.ccsens.game.service;
import com.ccsens.game.bean.dto.message.BaseMessageDto;
import com.ccsens.game.bean.dto.message.ChromeMessageDto;
import com.ccsens.game.bean.dto.message.GameMessageWithChangeStatusOut;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.WebConstant;
import com.ccsens.util.config.RabbitMQConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
@RabbitListener(queues = RabbitMQConfig.GAME_STATUS)
public class RabbitMQListener {
private Logger logger = LoggerFactory.getLogger(RabbitMQListener.class);
@Autowired
private IMessageService messageService;
@RabbitHandler
public void process(String messageJson) {
try {
System.out.println("Rabbit Received: " + messageJson);
BaseMessageDto baseMessage = JacksonUtil.jsonToBean(messageJson,BaseMessageDto.class);
WebConstant.Message_Type type = WebConstant.Message_Type.phaseOf(baseMessage.getType());
switch (type){
case ChangeStatus:
messageService.doChangeStatusMessage(JacksonUtil.jsonToBean(messageJson, GameMessageWithChangeStatusOut.class));
break;
default:
break;
}
}catch (Exception e){
e.printStackTrace();
}
}
}

5
util/src/main/java/com/ccsens/util/config/RabbitMQConfig.java

@ -12,10 +12,15 @@ public class RabbitMQConfig {
public static final String RabbitMQ_QUEUE_NAME = "Queue_Anyring";
public static final String TALL_MESSAGE_1 = "tall_message_1";
public static final String TALL_MESSAGE_2 = "tall_message_2";
public static final String GAME_STATUS = "game_status";
public static final String GAME_STATUS_DELAY_SEND_QUEUE = "gameStatusDelaySendQueue";
public static final String GAME_STATUS_DELAY_SEND_EXCHANGE = "gameStatusDelaySendExchange";
public static final String GAME_STATUS_DELAY_SEND_ROUTING_KEY = "gameStatusDelaySendRoutingKey";
@Bean
public Queue queue_game (){
return new Queue(GAME_STATUS);
}
@Bean
public Queue queue (){
return new Queue(RabbitMQ_QUEUE_NAME);

Loading…
Cancel
Save