Kutuma na Kupokea Ujumbe kupitia WebSocket in Python

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 kwa localhost anwani na mlango 8765.

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