2017-04-14 11:02:35 +02:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2017 univento.eu - All rights reserved
|
|
|
|
* You are not allowed to use, distribute or modify this code
|
|
|
|
*/
|
|
|
|
|
|
|
|
package eu.univento.commons.messaging;
|
|
|
|
|
|
|
|
import eu.univento.commons.Commons;
|
|
|
|
import eu.univento.commons.event.MessageEvent;
|
|
|
|
import io.vertx.core.json.JsonObject;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author joethei
|
|
|
|
* @version 1.0
|
|
|
|
*/
|
|
|
|
public class MessageHandler {
|
|
|
|
|
|
|
|
private static List<MessageEvent> events = new ArrayList<>();
|
|
|
|
|
|
|
|
public static void registerListener(String queue, MessageEvent event) {
|
|
|
|
events.add(event);
|
|
|
|
Commons.getCommons().getVertx().eventBus().consumer(queue, msg -> {
|
2017-06-04 13:36:38 +02:00
|
|
|
JsonObject json = (JsonObject) msg.body();
|
|
|
|
event.onMessageReceived(queue, json.getString("body"));
|
2017-04-14 11:02:35 +02:00
|
|
|
});
|
2017-06-04 13:36:38 +02:00
|
|
|
|
|
|
|
Commons.getCommons().getMessagingManager().start().whenComplete((rabbitMQ, throwable) -> rabbitMQ.getClient().basicConsume(queue, queue, res -> {
|
|
|
|
if(!res.succeeded()) res.cause().printStackTrace();
|
|
|
|
}));
|
2017-04-14 11:02:35 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public static void sendMessage(String queue, String message) {
|
2017-06-04 13:36:38 +02:00
|
|
|
Commons.getCommons().getMessagingManager().start().whenComplete((rabbitMQ, throwable) -> rabbitMQ.getClient().basicPublish("", queue, new JsonObject().put("body", message), res -> {
|
2017-04-14 11:02:35 +02:00
|
|
|
if(res.succeeded()) {
|
|
|
|
for(MessageEvent event : events) {
|
|
|
|
event.onMessageSend(queue, message);
|
|
|
|
}
|
|
|
|
}else res.cause().printStackTrace();
|
2017-06-04 13:36:38 +02:00
|
|
|
}));
|
2017-04-14 11:02:35 +02:00
|
|
|
}
|
|
|
|
}
|