Αποστολή και λήψη μηνυμάτων μέσω WebSocket in Python

WebSocket Η επικοινωνία σάς επιτρέπει να στέλνετε και να λαμβάνετε μηνύματα σε πραγματικό χρόνο μεταξύ ενός διακομιστή και των πελατών. Ακολουθεί ένας λεπτομερής οδηγός για το πώς να το πετύχετε αυτό χρησιμοποιώντας Python τη websockets βιβλιοθήκη.

Βήμα 1: Εγκαταστήστε τη WebSocket Βιβλιοθήκη

Αρχικά, εγκαταστήστε τη websockets βιβλιοθήκη εκτελώντας την ακόλουθη εντολή στο terminal:

pip install websockets

Βήμα 2: Αποστολή και λήψη μηνυμάτων στο διακομιστή

Ακολουθεί ένα παράδειγμα του τρόπου αποστολής και λήψης μηνυμάτων σε WebSocket διακομιστή:

import asyncio  
import websockets  
  
# WebSocket connection handling function  
async def handle_connection(websocket, path):  
    async for message in websocket:  
        await websocket.send(f"Server received: {message}")  
  
# Initialize the WebSocket server  
start_server = websockets.serve(handle_connection, "localhost", 8765)  
  
# Run the server within the event loop  
asyncio.get_event_loop().run_until_complete(start_server)  
asyncio.get_event_loop().run_forever()  

Στο απόσπασμα κώδικα:

  • async def handle_connection(websocket, path):: Αυτή η λειτουργία χειρίζεται WebSocket συνδέσεις. Όταν ένας πελάτης στέλνει ένα μήνυμα, αυτή η λειτουργία ακούει και στέλνει μια απάντηση.

  • async for message in websocket:: Αυτός ο βρόχος ακούει μηνύματα από τον πελάτη μέσω της WebSocket σύνδεσης.

  • await websocket.send(f"Server received: {message}"): Αυτή η λειτουργία στέλνει μια απάντηση από τον διακομιστή πίσω στον πελάτη μέσω της WebSocket σύνδεσης.

Βήμα 3: Αποστολή και λήψη μηνυμάτων από τον πελάτη

Ακολουθεί ένα παράδειγμα του τρόπου με τον οποίο ο πελάτης στέλνει και λαμβάνει μηνύματα από τον WebSocket διακομιστή:

import asyncio  
import websockets  
  
async def send_and_receive():  
    async with websockets.connect("ws://localhost:8765") as websocket:  
        await websocket.send("Hello, WebSocket!")  
        response = await websocket.recv()  
        print("Received:", response)  
  
asyncio.get_event_loop().run_until_complete(send_and_receive())  

Στο απόσπασμα κώδικα:

  • async with websockets.connect("ws://localhost:8765") as websocket:: Αυτός είναι ο τρόπος με τον οποίο ο πελάτης συνδέεται με τον WebSocket διακομιστή. Ο πελάτης δημιουργεί μια σύνδεση με τη localhost διεύθυνση και τη θύρα 8765.

  • await websocket.send("Hello, WebSocket!"): Ο πελάτης στέλνει το μήνυμα  στον διακομιστή. Hello, WebSocket!

  • response = await websocket.recv(): Ο πελάτης περιμένει να λάβει απάντηση από τον διακομιστή μέσω της WebSocket σύνδεσης.

συμπέρασμα

Ακολουθώντας τα βήματα και κατανοώντας κάθε μέρος του παραδείγματος, έχετε μάθει με επιτυχία πώς να στέλνετε και να λαμβάνετε μηνύματα μέσω WebSocket του Python. Αυτό ανοίγει δυνατότητες για τη δημιουργία εφαρμογών σε πραγματικό χρόνο και τη συνεχή ανταλλαγή δεδομένων μεταξύ διακομιστή και πελατών.