112 lines
3.7 KiB
Markdown
112 lines
3.7 KiB
Markdown
# Squelette du TP
|
||
|
||
## Utilisation
|
||
|
||
Pour utiliser ce tp vous devez :
|
||
|
||
1. le forker via le lien fork ci-dessus.
|
||
2. Votre repository doit être **privé**. Vous devez le partager avec votre encadrant de TP.
|
||
3. vous obtiendrez un nouveau lien : par exemple git@gitlab.istic.univ-rennes1.fr:monpseudo/....
|
||
4. Dans le **workspace d'eclipse** faites `git clone git@gitlab.istic.univ-rennes1.fr:monpseudo/...` avec l'url précédente.
|
||
5. Ouvrez le workspace dans eclipse.
|
||
6. Utilisez Import> "Existing Maven Projects".
|
||
7. Selectionnez le projet et validez.
|
||
|
||
Vous devriez avoir une version du projet dans votre propre compte gitlab.
|
||
|
||
Vous pouvez le partager avec votre binome et l'encadrant de TP.
|
||
|
||
|
||
## Rapport
|
||
|
||
Votre rapport doit être écrit ici en markdown. :/
|
||
Vous trouverez la syntaxe de markdown ici : https://docs.gitlab.com/ee/user/markdown.html
|
||
Placez vos images dans le répertoire images si nécessaire.
|
||
|
||
### Binôme :
|
||
Thibaut ROCHAS, Tuan Minh VU
|
||
|
||
### Introduction
|
||
|
||
On a utilisé CloudAMQP, qui semblait être la solution la plus simple pour commencer le TP rapidement.
|
||
Les exemples ont tous été testés, avec notre serveur RabitMQ.
|
||
Avec l’aide des exemples et du cours, on a pu faire la partie Date sans grande difficulté.
|
||
Ensuite, le chat n’était pas très compliqué, on a fait le bonus espion.
|
||
|
||
### Déroulement du TP
|
||
|
||
#### 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
|
||
|
||

|
||
|
||
|
||
#### Chat
|
||
|
||
|
||
|
||
## Faire des diagrammes
|
||
|
||
En particulier vous pouvez utiliser [mermaid](https://mermaidjs.github.io/) :
|
||
|
||
|
||
|
||
```mermaid
|
||
sequenceDiagram
|
||
participant Alice
|
||
participant Bob
|
||
Alice->John: Hello John, how are you?
|
||
loop Healthcheck
|
||
John->John: Fight against hypochondria
|
||
end
|
||
Note right of John: Rational thoughts <br/>prevail...
|
||
John-->Alice: Great!
|
||
John->Bob: How about you?
|
||
Bob-->John: Jolly good!
|
||
```
|
||
|
||
## Insérer du code
|
||
|
||
Insérer du `code` :
|
||
|
||
```java
|
||
public interface ClientHandler {
|
||
public void handle();
|
||
}
|
||
```
|
||
|
||
et des résultats :
|
||
|
||
```bash
|
||
[yo@capybara dkgr]$ nc google.fr 80
|
||
PWET /
|
||
HTTP/1.0 400 Bad Request
|
||
Content-Type: text/html; charset=UTF-8
|
||
Referrer-Policy: no-referrer
|
||
Content-Length: 1555
|
||
Date: Mon, 21 Jan 2019 12:18:02 GMT
|
||
|
||
<!DOCTYPE html>
|
||
<html lang=en>
|
||
<meta charset=utf-8>
|
||
```
|