diff --git a/README.md b/README.md index f0f6325..99c556b 100644 --- a/README.md +++ b/README.md @@ -37,14 +37,29 @@ Ensuite, le chat n’était pas très compliqué, on a fait le bonus espion. #### Exemples Pour les exemples il suffisait simplement de remplacer "localhost" dans le setHost du ConnectionFactory par l’URL de notre serveur RabbitMQ. + Le premier exemple envoie juste un seul message "Hello World", et on enregistre dans le receveur une action à effectuer à chaque message, ici il affiche simplement le message. + Sur le 2ème exemple, l’envoyeur NewTask prend ces arguments, les concatène en un message qu’il envoie au worker, qui va effectuer une action à chaque message reçu : il affiche le message puis attend 1 seconde pour chaque point dans le message reçu, et affiche "done" quand il a fini. + L’exemple 3 prend encore des arguments, il envoie à tous les Receveurs car le type d’échange est "fanout", ici le receveur affiche simplement le message. + Dans l’exemple 4, on utilise le type d’échange "direct", avec des topics, il faut donc aussi fournir le topic en argument en plus du message pour l’envoyeur, et le receveur on lui fournit les topics qu’il doit s’abonner. + L’exemple 5 fait la même chose que le 4, mais avec un type d’échange "topic", il y a donc une hiérarchie dans les topics. Le dernier exemple est une communication RPC, le client envoie un message et le serveur répond en fonction de ce message. + #### Date +A partir de l'exemple 3, on envoi simpelment la date, avec le même échange de type fanout. Pour généré la date on fait simplement une fonction getDate() qui return (new Date()).toString(); +Le reste est identique à tuto3.java + + +Pour la version de partages d'un même file + +![Texte alternatif](images/SateLD.png) + + #### Chat diff --git a/images/DateLD.png b/images/DateLD.png new file mode 100644 index 0000000..025302e Binary files /dev/null and b/images/DateLD.png differ diff --git a/src/main/java/fr/istic/chat/chat.java b/src/main/java/fr/istic/chat/chat.java new file mode 100644 index 0000000..46c2d53 --- /dev/null +++ b/src/main/java/fr/istic/chat/chat.java @@ -0,0 +1,36 @@ +package fr.istic.chat; + +import com.rabbitmq.client.Channel; +import com.rabbitmq.client.Connection; +import com.rabbitmq.client.ConnectionFactory; +import com.rabbitmq.client.DeliverCallback; + +public class chat { + private static final String EXCHANGE_NAME = "topic_log"; + + public static void main(String[] argv) throws Exception { + ConnectionFactory factory = new ConnectionFactory(); + factory.setUri("amqps://cyvthtfj:O8LmaXkX5mVB0oFZN9TobaK8rX9wEhol@whale.rmq.cloudamqp.com/cyvthtfj"); + Connection connection = factory.newConnection(); + Channel channel = connection.createChannel(); + + + String message = ""; + + if(false){ + channel.basicPublish(EXCHANGE_NAME, argv[0], null, message.getBytes("UTF-8")); + } + + String queueName = channel.queueDeclare().getQueue(); + + DeliverCallback deliverCallback = (consumerTag, delivery) -> { + String message2 = new String(delivery.getBody(), "UTF-8"); + System.out.println(" [x] Received '" + message2 + "'"); + }; + channel.basicConsume(queueName, true, deliverCallback, consumerTag -> { + }); + + + + } +}