Utilizzare ZeroMQ con Python

Mattepuffo's logo
Utilizzare ZeroMQ con Python

Utilizzare ZeroMQ con Python

ZeroMQ è una libreria per lo scambio di messaggi tra un client ed un server di tipo brokerless!

Sostanzialmente vuol dire che nella libreria è già incluso tutto quello che ci serve, senza altre configurazioni.

In questo articolo vediamo un esempio di utilizzo in Python.

Partiamo dall'installazione tramite pip:

pip install twisted

Qui sotto un esempio di server:

import time
import zmq

print("SERVER AVVIATO")

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")

while True:
    testo = socket.recv()

    print(f"Ricezione messaggio: {testo}")

    time.sleep(2)

    socket.send(b"CIAO DAL SERVER!")

Lo script rimarrà in attesa di un client, scritto in qualsiasi linguaggio ovviamente.

Nel momento che il client invia dei dati, li vedremo in console.

Alla fine, il server si rimetterà in attesa.

Qui sotto un esempio di client:

import zmq

print("CONNESSIONE Al SERVER")

context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")

for request in range(5):
    print(f"Invio testo {request}")
    socket.send(b"CIAO DAL CLIENT!")

    testo = socket.recv()
    print(f"Ricezione risposta {request} [ {testo} ]")

Tanto per completezza, sulla console del server comparirà una cosa del genere:

SERVER AVVIATO
Ricezione messaggio: b'CIAO DAL CLIENT!'
Ricezione messaggio: b'CIAO DAL CLIENT!'
Ricezione messaggio: b'CIAO DAL CLIENT!'
Ricezione messaggio: b'CIAO DAL CLIENT!'
Ricezione messaggio: b'CIAO DAL CLIENT!'

Sulla console del client invece:

CONNESSIONE Al SERVER
Invio testo 0 …
Ricezione risposta 0 [ b'CIAO DAL SERVER!' ]
Invio testo 1 …
Ricezione risposta 1 [ b'CIAO DAL SERVER!' ]
Invio testo 2 …
Ricezione risposta 2 [ b'CIAO DAL SERVER!' ]
Invio testo 3 …
Ricezione risposta 3 [ b'CIAO DAL SERVER!' ]
Invio testo 4 …
Ricezione risposta 4 [ b'CIAO DAL SERVER!' ]

Enjoy!


Condividi su Facebook

Commentami!