Differences

This shows you the differences between two versions of the page.

Link to this comparison view

isi:laboratoare:07 [2025/11/15 20:45]
alexandru.predescu [Breviar teoretic]
isi:laboratoare:07 [2025/11/21 12:52] (current)
stefanel.turcu
Line 167: Line 167:
 Pași pentru conectarea la RabbitMQ folosind Python Pași pentru conectarea la RabbitMQ folosind Python
  
-**1. Instalarea ​Bibliotecii ​pika**+**1. Instalarea ​bibliotecii ​pika**
  
 Asigură-te că ai instalat biblioteca ''​pika''​. Poți face acest lucru rulând următoarea comandă: Asigură-te că ai instalat biblioteca ''​pika''​. Poți face acest lucru rulând următoarea comandă:
Line 308: Line 308:
 print(f"​Exchange-ul '​{exchange_name}'​ de tip '​fanout'​ a fost creat."​) print(f"​Exchange-ul '​{exchange_name}'​ de tip '​fanout'​ a fost creat."​)
  
-hannel.queue_declare(queue=queue_name) 
- 
-# Legare queue la exchange 
 queue_name = "​queue1"​ # nume diferite pentru fiecare consumator queue_name = "​queue1"​ # nume diferite pentru fiecare consumator
 +channel.queue_declare(queue=queue_name)
  
 +# Legare queue la exchange
 channel.queue_bind(exchange=exchange_name,​ queue=queue_name) channel.queue_bind(exchange=exchange_name,​ queue=queue_name)
  
Line 351: Line 350:
 Pentru a conecta o aplicație Python la MQTT, vei folosi biblioteca ''​paho-mqtt''​. Aceasta permite crearea și configurarea conexiunilor,​ și trimiterea sau recepționarea mesajelor prin MQTT. Pentru a conecta o aplicație Python la MQTT, vei folosi biblioteca ''​paho-mqtt''​. Aceasta permite crearea și configurarea conexiunilor,​ și trimiterea sau recepționarea mesajelor prin MQTT.
  
-== 1. Instalarea ​Bibliotecii ​''​paho-mqtt''​ ==+== 1. Instalarea ​bibliotecii ​''​paho-mqtt''​ ==
  
 Asigură-te că ai instalat biblioteca ''​paho-mqtt''​. Poți face acest lucru rulând următoarea comandă: Asigură-te că ai instalat biblioteca ''​paho-mqtt''​. Poți face acest lucru rulând următoarea comandă:
Line 430: Line 429:
 === RabbitMQ === === RabbitMQ ===
  
-<​note>​ +<​note ​tip
-Descărcați proiectul de pe GitHub[[https://​github.com/​ACS-ISI/​Messenger/​tree/​main|Messenger]] +Pentru a instala toate dependențele necesare pentru laboratorul de astăzi, rulați: ''​pip install ​-r requirements.txt''​ folosind fișierul requirements.txt cu următorul conținut:
-</​note>​+
  
 +<​code>​
 +Flask==3.1.0
 +Flask_SocketIO==5.4.1
 +pika==1.3.2
 +</​code>​
  
-<note tip> 
-Pentru a instala toate dependențele necesare pentru laboratorul de astăzi, rulați: ''​pip install -r requirements.txt''​. Fișierul ''​requirements.txt''​ poate fi descărcat de aici: [[https://​github.com/​ACS-ISI/​Messenger/​blob/​main/​requirements.txt|requirements.txt]]. 
 </​note>​ </​note>​
  
Line 444: Line 445:
  
  
-== 2. Exchange și publisher ​de mesaje ==+== 2. Publisher ​de mesaje ==
  
 Creează un script Python care să permită citirea textelor de la tastatură și publicarea acestora într-un exchange nou. (care este creat programatic după realizarea cu succes a conexiunii la RabbitMQ). Scriptul va citi textul de la utilizator și va publica fiecare mesaj în exchange-ul RabbitMQ (in mod ''​fanout''​). Creează un script Python care să permită citirea textelor de la tastatură și publicarea acestora într-un exchange nou. (care este creat programatic după realizarea cu succes a conexiunii la RabbitMQ). Scriptul va citi textul de la utilizator și va publica fiecare mesaj în exchange-ul RabbitMQ (in mod ''​fanout''​).
Line 457: Line 458:
 </​code>​ </​code>​
  
-== 3. Queue și subscriber ​pentru mesaje ==+== 3. Subscriber ​pentru mesaje ==
  
 Creează un script Python care să creeze un queue, să-l lege la exchange-ul din exercițiul 1 și să afișeze fiecare mesaj primit. Scriptul va crea un queue nou și îl va asocia (binding) cu exchange-ul creat în exercițiul anterior. Pentru fiecare mesaj primit în queue, scriptul va afișa conținutul acestuia în consolă. Creează un script Python care să creeze un queue, să-l lege la exchange-ul din exercițiul 1 și să afișeze fiecare mesaj primit. Scriptul va crea un queue nou și îl va asocia (binding) cu exchange-ul creat în exercițiul anterior. Pentru fiecare mesaj primit în queue, scriptul va afișa conținutul acestuia în consolă.
Line 483: Line 484:
 TOPIC = "​chat/​general"​ TOPIC = "​chat/​general"​
 </​code>​ </​code>​
 +
 +Atenție! Daca toți colegii se conecteaza pe același topic, mesajele vor ajunge și la ei (și invers)
  
 </​note>​ </​note>​
Line 497: Line 500:
  
 Test: Test:
-  * Trimite mesaje între instanțe +  * Trimite mesaje între instanțe ​(publisher/​subscriber) 
-  * Observă că brokerul rutează mesajele automat+  * Observă că brokerul rutează mesajele automat ​pe baza topic-ului, indiferent de câte instanțe de publisher sau subscriber sunt conectate la broker
  
  
isi/laboratoare/07.1763232328.txt.gz · Last modified: 2025/11/15 20:45 by alexandru.predescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0