WebSocket mawasiliano hukuruhusu kutuma na kupokea ujumbe wa wakati halisi kati ya seva na wateja. Hapa kuna mwongozo wa kina wa jinsi ya kufanikisha hili katika Python kutumia websockets
maktaba.
Hatua ya 1: Sakinisha WebSocket Maktaba
Kwanza, sasisha websockets
maktaba kwa kuendesha amri ifuatayo katika terminal:
pip install websockets
Hatua ya 2: Kutuma na Kupokea Ujumbe kwenye Seva
Ufuatao ni mfano wa jinsi ya kutuma na kupokea ujumbe kwenye WebSocket seva:
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()
Katika kijisehemu cha kanuni:
-
async def handle_connection(websocket, path):
: Chaguo hili la kukokotoa hushughulikia WebSocket miunganisho. Wakati mteja anatuma ujumbe, chaguo hili la kukokotoa husikiliza na kutuma jibu tena. -
async for message in websocket:
: Kitanzi hiki husikiliza ujumbe kutoka kwa mteja kupitia WebSocket muunganisho. -
await websocket.send(f"Server received: {message}")
: Chaguo hili la kukokotoa hutuma jibu kutoka kwa seva kurudi kwa mteja kupitia WebSocket muunganisho.
Hatua ya 3: Kutuma na Kupokea Ujumbe kutoka kwa Mteja
Hapa kuna mfano wa jinsi mteja anavyotuma na kupokea ujumbe kutoka kwa WebSocket seva:
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())
Katika kijisehemu cha kanuni:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: Hivi ndivyo mteja anavyounganisha kwenye WebSocket seva. Mteja huanzisha muunganisho kwalocalhost
anwani na mlango8765
. -
await websocket.send("Hello, WebSocket!")
: Mteja hutuma ujumbe kwa seva.Hello, WebSocket!
-
response = await websocket.recv()
: Mteja husubiri kupokea jibu kutoka kwa seva kupitia WebSocket muunganisho.
Hitimisho
Kwa kufuata hatua na kuelewa kila sehemu ya mfano, umefaulu kujifunza jinsi ya kutuma na kupokea ujumbe WebSocket kupitia Python. Hii inafungua uwezekano wa kuunda programu za wakati halisi na ubadilishanaji wa data unaoendelea kati ya seva na wateja.