WebSocket ryšys leidžia siųsti ir gauti pranešimus realiuoju laiku tarp serverio ir klientų. Čia yra išsamus vadovas, kaip tai pasiekti naudojant Python biblioteką websockets
.
1 veiksmas: įdiekite WebSocket biblioteką
Pirmiausia įdiekite websockets
biblioteką vykdydami šią komandą terminal:
pip install websockets
2 veiksmas: pranešimų siuntimas ir gavimas serveryje
Žemiau pateikiamas pavyzdys, kaip siųsti ir gauti pranešimus serveryje 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()
Kodo fragmente:
-
async def handle_connection(websocket, path):
: Ši funkcija tvarko WebSocket ryšius. Kai klientas siunčia pranešimą, ši funkcija išklauso ir siunčia atsakymą atgal. -
async for message in websocket:
: ši kilpa klausosi pranešimų iš kliento per WebSocket ryšį. -
await websocket.send(f"Server received: {message}")
: Ši funkcija siunčia atsakymą iš serverio atgal klientui per WebSocket ryšį.
3 veiksmas: Kliento pranešimų siuntimas ir gavimas
Štai pavyzdys, kaip klientas siunčia ir gauna pranešimus iš serverio 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())
Kodo fragmente:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: Taip klientas prisijungia prie serverio WebSocket. Klientas užmezga ryšį sulocalhost
adresu ir prievadu8765
. -
await websocket.send("Hello, WebSocket!")
: klientas siunčia pranešimą serveriui.Hello, WebSocket!
-
response = await websocket.recv()
: klientas laukia atsakymo iš serverio per WebSocket ryšį.
Išvada
Vykdydami veiksmus ir suprasdami kiekvieną pavyzdžio dalį sėkmingai išmokote siųsti ir gauti pranešimus WebSocket naudodami Python. Tai atveria galimybes kurti programas realiuoju laiku ir nuolat keistis duomenimis tarp serverio ir klientų.