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 port8765
. -
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.