Ceci est un TEST NodeJS/Express/Socket.io, le code est dégueulasse, pas commenté et pas réfléchis. C'est un test a la va vite fait d'une traite de maniere empirique. Vous êtes prévenues!
Find a file
2021-01-19 17:57:05 +01:00
client first commit 2021-01-17 01:54:58 +01:00
server first commit 2021-01-17 01:54:58 +01:00
.gitignore first commit 2021-01-17 01:54:58 +01:00
database.sql first commit 2021-01-17 01:54:58 +01:00
install_push001.sh first commit 2021-01-17 01:54:58 +01:00
install_push002.sh first commit 2021-01-17 01:54:58 +01:00
install_push003.sh first commit 2021-01-17 01:54:58 +01:00
README.md correction readme 2021-01-19 17:57:05 +01:00
Vagrantfile first commit 2021-01-17 01:54:58 +01:00

Projet TestPush

Disclaimer

Ceci est un TEST, le code est dégueulasse, pas commenter et pas réfléchis. C'est un test a la va vite fait d'une traite de maniere empirique. Vous êtes prévenues!

Objectif

Le but de ce projet est de se familiariser avec une méthode de communication API/PUSH.

Le test tourne ici autour de Node.js / Express / Socket.io

Prérequis

Vous devez avoir d'installé - vagrant - virtualbox

Les VMs

3 VMs seront générés par le Vagrantfile - push_001 - name: push_001 - Rôle: database (postgresSQL) - IP: 192.168.5.210 - CPU: 1 - RAM: 1024 - push_002 - name: push_003 - Rôle: Server (Node JS + App Server) - IP: 192.168.5.211 - CPU: 1 - RAM: 1024 - push_003 - name: push_003 - Rôle: Client (Node JS + App Client) - IP: 192.168.5.212 - CPU: 1 - RAM: 1024

Comment ça marche ?

Le serveur push_002 est un serveur web qui fourni une API(NodeJS - Express) ainsi qu'un websocket(NodeJS - Socket.io)

L'API sert des données fournies par un serveur PostgreSQL situé sur le serveur push_001.

Une seule table se trouve dans la base de donnée. La table user, avec deux colonnes contenant un iduser et un username associé. Il y a 502 lignes numéroté de 1 à 502.

Le serveur push_003 heberge une app "client" qui peut simuler plusieurs connexion (parametre dans le fichier manager.js, par defaut 25 connexions).

API et Applications

http://192.168.5.211:3000/ ne retourne rien rien

http://192.168.5.211:3000/users retourne l'ensemble des utilisateurs présent dans la base de donnée

http://192.168.5.211:3000/users/USERID retourne les information d'un utilisateur (remplacer USERID par un numéro entre 1 et 502)

http://192.168.5.211:3000/connected retourne l'ensemble des sessions connecté. ID de session et user ID associé

http://192.168.5.211:3000/count retourne le nombre total de connectés

http://192.168.5.211:3000/socket fournis une app web qui simule un client. L'app choisi un userid aléatoirement en 1 et 502. Sur demande du serveur elle peut aller requeter l'API pour connaitre le nom associé a son userID

http://192.168.5.211:3000/admin fournis une app qui permet de remonter des informations du serveur. Le nombre de session websocket (rafraichis toutes les 5 secondes), des logs venants du serveurs, un bouton qui demande au serveur d'envoyer X requetes (Input "How many Tasks) a des clients choisi aléatoirement dans la liste de connecté. Les clients iront alors chercher dans l'API leur nom avant de l'afficher sur l'app web ou dans les logs de l'app client du serveur push_003.

Comment faire fonctionner tout ça?!

Une fois les prérequis installé, puis ce dépot récuperé, ouvrez un terminal a la racine du projet et tapez la commande vagrant up. Cela lancera l'ensemble des 3 serveurs. Les serveur push_001(DB) et push_002(Server) sont entierement automatisé et les différentes app démareront en toute autonomie.

Vous pouvez tester les différents liens founirs plus haut dés que vagrant a fini son travail.

L'app client

Pour faire fonctionner cette app il vous suffit de vous connecter sur le serveur push_003.

Toujours a la racine du projet tapez vagrant ssh push_003. Vous vous retrouverez sur le serveur en question quelques secondes plus tard. Deux possibilités: - Vous rendre dans le dossier /var/www/myapp et lancer la commande ./manager.js. Ce qui lancera le programme et vous permettera de voir les retour dans le shell. (un ctrl+c fermera le programme ainsi que tous les clients ouverts) OU - taper les commandes suivantes: - sudo systemctl start myapp.service pour lancer le service - sudo journalctl -f -u myapp pour suivre les logs du service

Information de connexion

PostgreSQL: - Login: vagrant - Password: vagrant - adresse 192.168.5.210:5432

VMs: - Login: vagrant - Password: vagrant - preferez une connexion SSH via vagrant