Envoi et réception de messages via WebSocket in Python

WebSocket La communication permet d'envoyer et de recevoir des messages en temps réel entre un serveur et des clients. Voici un guide détaillé sur la façon d'y parvenir en Python utilisant la websockets bibliothèque.

Étape 1: Installer la WebSocket bibliothèque

Tout d'abord, installez la websockets bibliothèque en exécutant la commande suivante dans le terminal  :

pip install websockets

Étape 2: Envoi et réception de messages sur le serveur

Voici un exemple d'envoi et de réception de messages sur un WebSocket serveur :

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()  

Dans l'extrait de code :

  • async def handle_connection(websocket, path):: Cette fonction gère WebSocket les connexions. Lorsqu'un client envoie un message, cette fonction écoute et renvoie une réponse.

  • async for message in websocket:: Cette boucle écoute les messages du client via la WebSocket connexion.

  • await websocket.send(f"Server received: {message}"): Cette fonction renvoie une réponse du serveur au client via la WebSocket connexion.

Étape 3: Envoi et réception de messages du client

Voici un exemple de la façon dont le client envoie et reçoit des messages du WebSocket serveur :

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())  

Dans l'extrait de code :

  • async with websockets.connect("ws://localhost:8765") as websocket:: C'est ainsi que le client se connecte au WebSocket serveur. Le client établit une connexion à l' localhost adresse et au port 8765.

  • await websocket.send("Hello, WebSocket!"): Le client envoie le message  au serveur. Hello, WebSocket!

  • response = await websocket.recv(): Le client attend de recevoir une réponse du serveur via la WebSocket connexion.

Conclusion

En suivant les étapes et en comprenant chaque partie de l'exemple, vous avez appris à envoyer et à recevoir des messages via WebSocket in Python. Cela ouvre des possibilités de création d'applications en temps réel et d'échange de données continu entre le serveur et les clients.