إرسال واستقبال الرسائل عبر WebSocket في Python

WebSocket يتيح لك الاتصال إرسال واستقبال الرسائل في الوقت الفعلي بين الخادم والعملاء. إليك دليل مفصل حول كيفية تحقيق ذلك باستخدام Python المكتبة websockets.

الخطوة 1: قم بتثبيت WebSocket المكتبة

أولاً ، قم بتثبيت websockets المكتبة عن طريق تشغيل الأمر التالي في terminal:

pip install websockets

الخطوة 2: إرسال الرسائل واستلامها على الخادم

فيما يلي مثال على كيفية إرسال الرسائل واستلامها على 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()  

في مقتطف الشفرة:

  • async def handle_connection(websocket, path):: هذه الوظيفة تتعامل مع WebSocket التوصيلات. عندما يرسل العميل رسالة ، تستمع هذه الوظيفة وترسل الرد.

  • async for message in websocket:: هذه الحلقة تستمع للرسائل الواردة من العميل عبر WebSocket الاتصال.

  • await websocket.send(f"Server received: {message}"): ترسل هذه الوظيفة استجابة من الخادم إلى العميل عبر WebSocket الاتصال.

الخطوة 3: إرسال واستلام الرسائل من العميل

فيما يلي مثال على كيفية قيام العميل بإرسال الرسائل واستلامها من 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())  

في مقتطف الشفرة:

  • async with websockets.connect("ws://localhost:8765") as websocket:: هذه هي الطريقة التي يتصل بها العميل بالخادم WebSocket. ينشئ العميل اتصالاً بالعنوان localhost والمنفذ 8765.

  • await websocket.send("Hello, WebSocket!"): يرسل العميل الرسالة  إلى الخادم. Hello, WebSocket!

  • response = await websocket.recv(): العميل ينتظر لتلقي استجابة من الخادم عبر WebSocket الاتصال.

خاتمة

باتباع الخطوات وفهم كل جزء من المثال ، تعلمت بنجاح كيفية إرسال الرسائل واستلامها عبر WebSocket in Python. هذا يفتح إمكانيات إنشاء تطبيقات في الوقت الفعلي وتبادل البيانات المستمر بين الخادم والعملاء.